Gateway multi-cluster Application Load Balancer (ALB) yang disediakan oleh Distributed Cloud Container Platform for Kubernetes (ACK One) merupakan mode multi-cluster dari Ingress ALB. Secara umum, gateway multi-cluster ALB dapat digunakan seperti mode single-cluster Ingress ALB, dengan beberapa pengecualian. Topik ini menjelaskan Ingress ALB multi-cluster.
Ingress ALB
Ingress ALB dibangun berdasarkan Application Load Balancer (ALB) dan berfungsi sebagai ingress terpadu untuk Layanan dalam kluster Container Service for Kubernetes (ACK). Dibandingkan dengan Ingress NGINX, Ingress ALB sepenuhnya dikelola sehingga Anda tidak perlu memeliharanya secara manual. Ingress ALB dapat mendeteksi perubahan pada sumber daya Ingress di kluster Kubernetes dan mendistribusikan trafik ke Layanan backend sesuai aturan routing yang telah ditentukan. Selain itu, Ingress ALB memiliki mekanisme penskalaan otomatis yang kuat untuk menyesuaikan diri dengan fluktuasi trafik, memastikan stabilitas sistem. Gambar berikut menggambarkan hubungan logis antara instance ALB dan Ingress ALB multi-cluster.
Kontroler Ingress ALB: Komponen yang mengelola sumber daya Ingress. Kontroler Ingress ALB menggunakan API server di kluster untuk mendapatkan perubahan dinamis pada sumber daya Ingress dan memperbarui instance ALB berdasarkan aturan routing Ingress. Kontroler Ingress ALB adalah pusat kontrol instance ALB, mengelola instance tersebut tanpa mendistribusikan trafik. Trafik didistribusikan oleh instance ALB.
AlbConfig adalah CustomResourceDefinition (CRD) yang dibuat oleh kontroler Ingress ALB. Parameter dalam AlbConfig mendefinisikan konfigurasi instance ALB, di mana setiap AlbConfig sesuai dengan satu instance ALB. Instance ALB berfungsi sebagai ingress untuk mendistribusikan trafik ke layanan backend dan sepenuhnya dikelola oleh ALB. Dibandingkan dengan kontroler Ingress NGINX, Ingress ALB tidak memerlukan pemeliharaan operasional dan menawarkan elastisitas tinggi.
IngressClass: IngressClass adalah atribut dari Ingress Kubernetes yang mendefinisikan kelas atau pengenal kontroler Ingress. IngressClass memungkinkan penggunaan beberapa kontroler Ingress dalam satu kluster dan menentukan kontroler untuk setiap Ingress.
Ingress: Ingress adalah objek sumber daya yang mendefinisikan aturan routing trafik eksternal dan kontrol akses. Kontroler Ingress ALB memantau perubahan pada sumber daya Ingress dan memperbarui instance ALB untuk mendistribusikan trafik.
Layanan: Dalam Kubernetes, pod bersifat sementara dan tidak stabil. Layanan menyediakan entri stabil dan terpusat untuk pod dengan fungsi serupa. Aplikasi lain atau Layanan dapat berkomunikasi dengan pod menggunakan alamat IP virtual dan port Layanan tanpa khawatir tentang perubahan pada pod. Untuk informasi lebih lanjut tentang Layanan, lihat Manajemen Layanan.
Konfigurasi AlbConfig
Dalam mode multi-cluster, anotasi alb.ingress.kubernetes.io/remote-clusters ditambahkan ke AlbConfig untuk menentukan kluster yang terkait dengan instance ALB dan digunakan untuk mendistribusikan trafik. AlbConfig berikut digunakan untuk membuat gateway multi-cluster.
Untuk informasi lebih lanjut tentang bidang AlbConfig, lihat Kamus GlobalConfiguration ALB Ingress.
Untuk informasi lebih lanjut tentang cara menggunakan AlbConfig untuk mengonfigurasi instance ALB, lihat Konfigurasikan instance ALB dan listener.
apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata:
name: ackone-gateway-demo
annotations:
# Tambahkan kluster terkait yang digunakan untuk mendistribusikan trafik ke instance ALB multi-cluster.
alb.ingress.kubernetes.io/remote-clusters: ${cluster1},${cluster2}
spec:
config:
name: one-alb-demo
addressType: Internet
addressAllocatedMode: Fixed
zoneMappings:
- vSwitchId: ${vsw-id1}
- vSwitchId: ${vsw-id2}
listeners:
- port: 8001
protocol: HTTPTabel berikut menjelaskan parameter tersebut.
Parameter | Diperlukan | Deskripsi |
| Ya | Nama dari AlbConfig. |
| Ya | Daftar kluster terkait yang akan ditambahkan ke gateway multi-cluster ALB. ID kluster yang terdaftar di sini telah dikaitkan dengan instance Fleet. |
| Tidak | Nama dari instance ALB. |
| Tidak | Jenis jaringan dari instance ALB. Nilai yang valid:
|
| Ya | ID vSwitch yang dikaitkan dengan instance ALB. Untuk informasi lebih lanjut tentang cara membuat vSwitch, lihat Buat dan kelola vSwitches. Catatan
|
| Tidak | Port dan protokol listener dari instance ALB. Contoh yang diberikan dalam topik ini mengonfigurasi listener HTTP pada port 8001. Listener mendefinisikan bagaimana ALB menerima trafik. Kami merekomendasikan agar Anda mempertahankan konfigurasi listener. Jika tidak, Anda harus membuat listener sebelum dapat menggunakan Ingress ALB. |
Konfigurasi Ingress
Sebagian besar konfigurasi Ingress ALB multi-cluster serupa dengan konfigurasi Ingress ALB single-cluster. Namun, fitur pembagian trafik berdasarkan bobot dan rilis canary tidak dapat digunakan secara bersamaan dalam mode multi-cluster.
Untuk informasi lebih lanjut tentang anotasi, lihat Anotasi yang didukung oleh Ingress ALB.
Untuk informasi lebih lanjut tentang cara mengonfigurasi Ingress, lihat Konfigurasikan Ingress.