Cara Menggunakan HAProxy sebagai Pengawal Ingress dalam Persekitaran Kubernetes

Cara Menggunakan Haproxy Sebagai Pengawal Ingress Dalam Persekitaran Kubernetes



Kubernetes ialah pilihan ideal untuk sesiapa sahaja yang ingin mengautomasikan penggunaan, penskalaan dan pengurusan aplikasi dalam bekas. Dalam persekitaran Kubernetes, pengawal kemasukan adalah penting dalam mengurus akses luaran kepada mana-mana perkhidmatan kluster Kubernetes. Pengawal kemasukan bertindak sebagai ruang masuk untuk trafik luaran yang membolehkan anda mentakrifkan penghalaan dan cara anda ingin mengawal trafik ke perkhidmatan. Anda boleh menggunakan kawalan kemasukan yang berbeza, tetapi untuk kes ini, kami akan menumpukan pada HAProxy dan menggunakannya untuk melaksanakan peraturan yang kami tentukan dalam sumber kemasukan kami.

Apakah Pengawal Ingress?

Pengawal kemasukan ialah komponen yang membolehkan pengguna mengurus dan mengawal akses perkhidmatan dalam kelompok Kubernetes mereka. Pengawal kemasukan mempunyai dua elemen utama:

  1. Sumber Ingress – Ia ialah objek API Kubernetes yang mentakrifkan peraturan untuk menghalakan trafik perkhidmatan dalam kelompok berdasarkan nama hos dan laluan yang ditentukan.
  2. Pengawal Ingress – Ia adalah komponen perisian seperti HAProxy, Traefik atau NGINX yang melaksanakan peraturan yang dinyatakan dalam sumber kemasukan. Ia mengkonfigurasi pengimbang beban untuk mengendalikan lalu lintas berdasarkan perubahan yang dibuat pada objek kemasukan.

Cara Menggunakan HAProxy sebagai Pengawal Ingress dalam Persekitaran Kubernetes

Setelah memahami apa itu pengawal kemasukan dan mengapa anda memerlukannya, tugas seterusnya adalah untuk merangkumi langkah-langkah untuk menggunakannya. Untuk kes kami, kami menyediakan HAProxy sebagai pengawal kemasukan kami mengikut langkah yang disediakan.







N/B: Pastikan anda mempunyai kumpulan Kubernetes anda dan berjalan. Kemudian, teruskan seperti berikut.



Langkah 1: Mulakan Kluster Kubernetes Anda
Terdapat pelbagai cara untuk menyediakan dan memulakan gugusan Kubernetes. Untuk panduan ini, kami menggunakan Minikube. Ia ialah alat yang menawarkan cara mudah untuk menggunakan Kubernetes di dalam mesin maya atau Docker, terutamanya jika anda mempunyai Kubernetes secara tempatan pada mesin anda.



Merujuk kepada Dokumentasi Minikube pada arahan pemasangan untuk digunakan untuk platform anda. Untuk kes ini, kami menjalankan seni bina Linux 'x64' yang stabil dan menjalankan arahan berikut:





$ curl -IT https: // storage.googleapis.com / minikube / keluaran / terkini / minikube-linux-amd64
$ sudo pasang minikube-linux-amd64 / usr / tempatan / tong sampah / minikube

Perintah pertama merebut binari Minikube stabil terkini, manakala arahan kedua memasang dan menggerakkan binari ke laluan yang ditentukan.

Sebaik sahaja anda memasang Minikube, mulakannya untuk memaparkan kluster.



$ permulaan minikube

Anda kemudiannya mesti memasang kubectl untuk mengakses kluster. Walau bagaimanapun, anda boleh menggunakan versi kubectl yang tersedia dengan Minikube. Sebagai contoh, untuk menyemak butiran pod yang sedang berjalan, anda laksanakan arahan 'kubectl' seperti berikut:

$ minikube kubectl -- dapatkan buah -A

Dengan cara itu, anda tidak perlu memasang kubectl. (–) menandakan bahawa arahan adalah untuk kubectl, bukan Minikube.

Langkah 2: Cipta Ruang Nama
Langkah kedua melibatkan mencipta ruang nama khusus untuk pengawal kemasukan. Kami menamakan ruang nama sebagai 'pengawal haproksi'.

$ minikube kubectl mencipta namespace haproxy-controller

Langkah 3: Cipta dan Pasang Pengawal Ingress HAProxy
Cara anda mencipta pengawal kemasukan bergantung pada perkara yang anda ingin capai. Sebagai contoh, anda boleh mencipta pengawal kemasukan HAProxy untuk menghalakan trafik HTTP bergantung pada nama hos yang diminta. Untuk kes sedemikian, mulakan dengan mengakses pelayan DNS anda dan mencipta rekod 'A' untuk memetakan nama hos sasaran kepada kluster anda.

Sebaik sahaja anda mempunyai rekod 'A' anda yang betul, cipta fail YAML pengawal kemasukan anda seperti yang ditunjukkan dalam imej berikut. Dalam bahagian pertama, kami mencipta sumber Deployment yang menggunakan imej bekas Docker 'jmalloc/echo-server' sebagai contoh kami.

Dalam bahagian kedua fail YAML, kami mencipta sumber Perkhidmatan yang dipetakan berdasarkan nama hos yang diminta dalam pengawal kemasukan yang dibuat dalam langkah 4.

Simpan fail dan gunakannya ke kluster anda menggunakan kubectl. Kami merujuk kubectl Minikube dengan menjalankan arahan berikut untuk kes kami. Pengawal kemasukan HAProxy kami ialah 'linuxhint-jmaildeployment.yaml'.

$ minikube kubectl -- memohon -f < nama fail >

Sebaik sahaja anda mendapat output yang menunjukkan bahawa perkhidmatan telah dibuat, anda boleh mengesahkan lagi bahawa ia telah digunakan menggunakan arahan berikut:

$ minikube kubectl -- dapatkan buah --ruang nama pengawal haproksi

Pastikan anda menggunakan ruang nama yang betul yang anda buat dalam langkah 1. Anda akan mendapat output yang mengesahkan bahawa perkhidmatan tersedia yang bermaksud bahawa penggunaan telah berjaya.

Langkah 4: Cipta dan Sebarkan Sumber Ingress
Cipta fail YAML lain yang bertindak sebagai sumber kemasukan yang mengandungi peraturan tentang cara HAProxy harus menghalakan trafik anda. Pastikan anda menggunakan nama domain (hos) yang betul yang anda sasarkan dan laraskan penamaan dan port yang dikehendaki untuk menerima trafik masuk.

Simpan fail sumber kemasukan HAProxy dan gunakannya seperti yang kami lakukan dengan pengawal.

$ minikube kubectl -- memohon -f < nama fail >

Kami menamakan sumber kemasukan kami sebagai 'linuxhint-ingresscontroller.yaml'.

Itu sahaja! Dengan arahan berikut, anda boleh mengesahkan bahawa pengawal kemasukan HAProxy anda berfungsi dengan menyemak port yang diberikan kepada NodePort.

$ minikube kubectl -- dapatkan perkhidmatan haproxy-kubernetes-ingress --ruang nama pengawal haproksi

Untuk kes ini, ia ditetapkan dengan port 32448. Anda boleh mengakses perkhidmatan yang dibuat menggunakan port dan menyemak statusnya.

Dengan itu, anda berjaya menggunakan HAProxy sebagai pengawal kemasukan dalam persekitaran Kubernetes.

Kesimpulan

Pengawal kemasukan membolehkan anda menentukan cara mengendalikan trafik ke kluster anda berdasarkan peraturan yang ditakrifkan dalam fail sumber kemasukan anda. HAProxy ialah pengawal kemasukan yang boleh dipercayai yang boleh anda gunakan dalam gugusan Kubernetes, dan siaran ini merangkumi langkah yang perlu anda ikuti untuk menggunakannya. Cubalah dan nikmati menggunakan HAProxy sebagai pengawal kemasukan anda.