全部产品
Search
文档中心

Container Service for Kubernetes:Ikhtisar gateway multi-cluster ALB

更新时间:Jul 06, 2025

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.

Catatan
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: HTTP

Tabel berikut menjelaskan parameter tersebut.

Parameter

Diperlukan

Deskripsi

metadata.name

Ya

Nama dari AlbConfig.

metadata.annotations:

alb.ingress.kubernetes.io/remote-clusters

Ya

Daftar kluster terkait yang akan ditambahkan ke gateway multi-cluster ALB. ID kluster yang terdaftar di sini telah dikaitkan dengan instance Fleet.

spec.config.name

Tidak

Nama dari instance ALB.

spec.config.addressType

Tidak

Jenis jaringan dari instance ALB. Nilai yang valid:

  • Internet (default): Jaringan publik. Instance ALB menyediakan layanan ke Internet dan dapat diakses melalui Internet.

    Catatan

    Untuk mengizinkan instance ALB menyediakan layanan yang menghadap ke Internet, instance ALB perlu dikaitkan dengan alamat IP elastis (EIP). Jika Anda menggunakan instance ALB yang menghadap ke Internet, Anda akan dikenakan biaya instans dan biaya bandwidth atau transfer data untuk EIP yang terkait. Untuk informasi lebih lanjut, lihat Bayar sesuai pemakaian.

    Intranet: Jaringan pribadi. Instance ALB menyediakan layanan dalam VPC dan tidak dapat diakses melalui Internet.

spec.config.zoneMappings

Ya

ID vSwitch yang dikaitkan dengan instance ALB. Untuk informasi lebih lanjut tentang cara membuat vSwitch, lihat Buat dan kelola vSwitches.

Catatan
  • vSwitch yang ditentukan harus ditempatkan di zona yang didukung oleh instance ALB dan ditempatkan di VPC yang sama dengan kluster. Untuk informasi lebih lanjut tentang wilayah dan zona yang didukung oleh ALB, lihat Wilayah dan zona.

  • ALB mendukung penyebaran multi-zona. Jika wilayah saat ini mendukung dua zona atau lebih, pilih vSwitch di setidaknya dua zona untuk memastikan ketersediaan tinggi.

spec.listeners

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.