Cara Menggunakan HAProxy sebagai Pengontrol Ingress di Lingkungan Kubernetes

Cara Menggunakan Haproxy Sebagai Pengontrol Ingress Di Lingkungan Kubernetes



Kubernetes adalah pilihan ideal bagi siapa saja yang ingin mengotomatiskan penerapan, penskalaan, dan pengelolaan aplikasi dalam container. Di lingkungan Kubernetes, pengontrol ingress sangat penting dalam mengelola akses eksternal ke layanan cluster Kubernetes. Pengontrol ingress bertindak sebagai ruang masuk untuk lalu lintas eksternal yang memungkinkan Anda menentukan perutean dan cara Anda ingin mengontrol lalu lintas ke layanan. Anda dapat menggunakan kontrol masuk yang berbeda, namun untuk kasus ini, kami akan fokus pada HAProxy dan menggunakannya untuk menerapkan aturan yang kami tetapkan di sumber daya masuk kami.

Apa itu Pengontrol Ingress?

Pengontrol ingress adalah komponen yang memungkinkan pengguna untuk mengelola dan mengontrol akses layanan dalam cluster Kubernetes mereka. Pengontrol ingress memiliki dua elemen kunci:

  1. Sumber Daya Masuknya – Ini adalah objek API Kubernetes yang mendefinisikan aturan untuk merutekan lalu lintas layanan di cluster berdasarkan nama host dan jalur yang ditentukan.
  2. Pengontrol Masuknya – Ini adalah komponen perangkat lunak seperti HAProxy, Traefik, atau NGINX yang mengimplementasikan aturan yang ditentukan dalam sumber daya ingress. Ini mengonfigurasi penyeimbang beban untuk menangani lalu lintas berdasarkan perubahan yang dibuat pada objek ingress.

Cara Menggunakan HAProxy sebagai Pengontrol Ingress di Lingkungan Kubernetes

Setelah memahami apa itu pengontrol ingress dan mengapa Anda membutuhkannya, tugas selanjutnya adalah membahas langkah-langkah untuk menggunakannya. Untuk kasus kami, kami menyiapkan HAProxy sebagai pengontrol masuknya dengan mengikuti langkah-langkah yang disediakan.







Catatan: Pastikan cluster Kubernetes Anda sudah aktif dan berjalan. Kemudian, lanjutkan sebagai berikut.



Langkah 1: Mulai Cluster Kubernetes Anda
Ada berbagai cara untuk menyiapkan dan memulai cluster Kubernetes. Untuk panduan ini, kami menggunakan Minikube. Ini adalah alat yang menawarkan cara sederhana untuk menerapkan Kubernetes di dalam mesin virtual atau Docker, terutama jika Anda memiliki Kubernetes secara lokal di mesin Anda.



Mengacu kepada Dokumentasi Minikube pada perintah instalasi yang akan digunakan untuk platform Anda. Untuk kasus ini, kami menjalankan arsitektur Linux “x64” yang stabil dan menjalankan perintah berikut:





$ keriting -DIA https: // penyimpanan.googleapis.com / minikube / rilis / terbaru / minikube-linux-amd64
$ sudo Install minikube-linux-amd64 / usr / lokal / tempat sampah / minikube

Perintah pertama mengambil biner Minikube stabil terbaru, sedangkan perintah kedua menginstal dan memindahkan biner ke jalur yang ditentukan.

Setelah Anda menginstal Minikube, jalankan untuk membuka cluster.



$ minikube dimulai

Anda kemudian harus menginstal kubectl untuk mengakses cluster. Namun, Anda dapat menggunakan versi kubectl yang tersedia di Minikube. Misalnya, untuk memeriksa detail pod yang sedang berjalan, jalankan perintah “kubectl” sebagai berikut:

$ minikube kubectl -- mendapatkan polong -A

Dengan begitu, Anda tidak perlu menginstal kubectl. Tanda (–) menandakan bahwa perintah tersebut ditujukan untuk kubectl, bukan Minikube.

Langkah 2: Buat Ruang Nama
Langkah kedua melibatkan pembuatan namespace khusus untuk pengontrol ingress. Kami menamai namespace tersebut sebagai 'haproxy-controller'.

$ minikube kubectl membuat namespace haproxy-controller

Langkah 3: Buat dan Terapkan Pengontrol Ingress HAProxy
Cara Anda membuat pengontrol ingress bergantung pada apa yang ingin Anda capai. Misalnya, Anda dapat membuat pengontrol masuknya HAProxy untuk merutekan lalu lintas HTTP bergantung pada nama host yang diminta. Untuk kasus seperti itu, mulailah dengan mengakses server DNS Anda dan membuat catatan “A” untuk memetakan nama host target ke cluster Anda.

Setelah Anda memiliki data “A” yang benar, buat file YAML pengontrol ingress seperti yang ditunjukkan pada gambar berikut. Di bagian pertama, kita membuat sumber daya Deployment yang menggunakan image container Docker “jmalloc/echo-server” sebagai contoh.

Di bagian kedua file YAML, kita membuat sumber daya Layanan yang dipetakan berdasarkan nama host yang diminta di pengontrol ingress yang dibuat pada langkah 4.

Simpan file dan terapkan ke cluster Anda menggunakan kubectl. Kami mereferensikan Minikube kubectl dengan menjalankan perintah berikut untuk kasus kami. Pengontrol masuknya HAProxy kami adalah “linuxhint-jmaildeployment.yaml”.

$ minikube kubectl -- menerapkan -F < nama file >

Setelah Anda mendapatkan output yang menunjukkan bahwa layanan telah dibuat, Anda dapat memverifikasi lebih lanjut bahwa layanan tersebut telah disebarkan menggunakan perintah berikut:

$ minikube kubectl -- mendapatkan polong --ruang nama pengontrol haproxy

Pastikan Anda menggunakan namespace yang benar yang Anda buat pada langkah 1. Anda akan mendapatkan output yang mengonfirmasi bahwa layanan tersedia yang berarti penerapan berhasil.

Langkah 4: Buat dan Terapkan Sumber Daya Ingress
Buat file YAML lain yang bertindak sebagai sumber daya masuk yang berisi aturan tentang bagaimana HAProxy merutekan lalu lintas Anda. Pastikan Anda menggunakan nama domain (host) yang benar yang Anda targetkan dan sesuaikan penamaan serta port yang diinginkan untuk menerima lalu lintas masuk.

Simpan file sumber daya ingress HAProxy dan terapkan seperti yang kita lakukan dengan pengontrol.

$ minikube kubectl -- menerapkan -F < nama file >

Kami menamai sumber daya ingress kami sebagai “linuxhint-ingresscontroller.yaml”.

Itu dia! Dengan perintah berikut, Anda dapat memverifikasi bahwa pengontrol ingress HAProxy Anda berfungsi dengan memeriksa port yang ditetapkan ke NodePort.

$ minikube kubectl -- dapatkan layanan haproxy-kubernetes-ingress --ruang nama pengontrol haproxy

Untuk kasus ini, ini ditetapkan dengan port 32448. Anda dapat mengakses layanan yang dibuat menggunakan port tersebut dan memeriksa statusnya.

Dengan itu, Anda berhasil menggunakan HAProxy sebagai pengontrol ingress di lingkungan Kubernetes.

Kesimpulan

Pengontrol ingress memungkinkan Anda menentukan cara menangani lalu lintas ke klaster Anda berdasarkan aturan yang ditentukan dalam file sumber daya ingress Anda. HAProxy adalah pengontrol ingress andal yang dapat Anda gunakan dalam cluster Kubernetes, dan postingan ini membahas langkah-langkah apa yang harus Anda ikuti untuk menggunakannya. Cobalah dan nikmati penggunaan HAProxy sebagai pengontrol masuknya Anda.