All Products
Search
Document Center

Container Compute Service:Gunakan kembali load balancer untuk layanan lintas kluster

Last Updated:Jun 18, 2026

Penerapan lintas kluster meningkatkan pemulihan bencana, keandalan, dan isolasi keamanan. Namun, membuat Service bertipe LoadBalancer untuk setiap backend akan mengakibatkan pemborosan instans load balancer. Dengan komponen Cloud Controller Manager (CCM), Anda dapat menyambungkan titik akhir dalam kluster maupun eksternal ke satu instans load balancer yang sudah ada dan mengonfigurasi bobot forwarding untuk setiap titik akhir.

Prasyarat

Kasus penggunaan 1: Layanan dalam kluster dan titik akhir eksternal

Anda dapat menyambungkan Service dalam kluster dan titik akhir eksternal, seperti Instance ECS, ke instans load balancer yang sama.

  1. Temukan ID instans load balancer yang sudah ada di Classic Load Balancer (CLB) console atau Network Load Balancer (NLB) console.

  2. Gunakan kembali instans load balancer yang sudah ada saat membuat Service.

    Gunakan Konsol

    Saat membuat Layanan di Konsol Container Service for Kubernetes (ACK), atur Service Type ke LoadBalancer. Selanjutnya, pilih Use Existing Resource, pilih instans load balancer yang telah ada, lalu pilih Create port listener.

    Gunakan kubectl

    Saat membuat Service menggunakan kubectl, tambahkan Anotasi untuk menentukan ID instans load balancer.

    apiVersion: v1
    kind: Service
    metadata:
      annotations:
        service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id: ${LB_ID} # Ganti ${LB_ID} dengan ID instans load balancer yang sudah ada.
        service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners: "true"  # Atur ke "true" untuk secara otomatis membuat listener dan virtual server group.
      labels:
        #...
      name: #...
    spec:
      #...
    Penting

    Setelah Service dibuat, CCM secara otomatis membuat virtual server group dan listener pada instans load balancer target. Listener tersebut menggunakan virtual server group ini sebagai backend-nya dan meneruskan traffic ke port Service.

  3. Tambahkan titik akhir eksternal ke virtual server group yang dibuat secara otomatis. Untuk petunjuknya, lihat Create and manage a virtual server group dan NLB server groups.

    Setelah dikonfigurasi, virtual server group akan menampilkan Pod dalam kluster dan titik akhir eksternal, masing-masing dengan bobot forwarding yang dapat dikonfigurasi. Saat aplikasi dalam kluster diskalakan, titik akhirnya secara otomatis ditambahkan atau dihapus dari server group tanpa memengaruhi titik akhir eksternal.

Kasus penggunaan 2: Layanan di beberapa kluster

Anda dapat menyambungkan Service dari kluster berbeda ke satu instans load balancer untuk menyediakan titik masuk terpadu.

Agar titik akhir backend diperbarui secara otomatis saat Pod berubah, semua Service yang berbagi load balancer juga harus berbagi listener dan virtual server group yang sama. Buat listener dan virtual server group secara manual pada instans load balancer, lalu gunakan kembali di semua Service tersebut. Port listener harus sesuai dengan port Service.

Penting
  • Service di kluster berbeda harus menggunakan port yang sama.

  • Kombinasi namespace dan nama Service harus unik di seluruh kluster.

  1. Buat Pendengar dan kelompok server virtual untuk instans load balancer. Untuk petunjuk, lihat Pendengar CLB, Membuat dan mengelola kelompok server virtual, Pendengar NLB, dan kelompok server NLB.

  2. Gunakan kembali virtual server group yang dibuat secara manual saat membuat Service.

    Untuk menggunakan kembali virtual server group tersebut, tambahkan Anotasi ke manifes Service untuk menentukan ID instans load balancer dan virtual server group. Anda juga dapat mengatur bobot forwarding untuk Service tersebut.

    apiVersion: v1
    kind: Service
    metadata:
      annotations:
        service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id: "${YOUR_LB_ID}" # Ganti ${YOUR_LB_ID} dengan ID instans load balancer yang sudah ada.
        service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vgroup-port: "${YOUR_VGROUP_ID}:{PORT}" # Ganti ${YOUR_VGROUP_ID} dengan ID virtual server group dan {PORT} dengan port Service.
        service.beta.kubernetes.io/alibaba-cloud-loadbalancer-weight: "100" # Opsional. Bobot forwarding untuk Pod milik Service ini. Nilai valid berkisar antara 1 hingga 1000. Nilai default adalah 100.
      labels:
        #...
      name: #...
    spec:
      #...
    Catatan

    Jika Anda memiliki beberapa kombinasi port dan virtual server group untuk service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vgroup-port, pisahkan dengan koma (,). Contohnya: "${YOUR_VGROUP_ID_1}:80, ${YOUR_VGROUP_ID_2}:443".

    Setelah dikonfigurasi, Anda dapat melihat Pod dari Service di kluster berbeda dalam virtual server group di load balancer console. Saat aplikasi di salah satu kluster diskalakan, CCM secara otomatis menambahkan atau menghapus Pod-nya dari server group tanpa memengaruhi Pod dari kluster lain.

    Penting

    Jika Anda mengonfigurasi bobot forwarding menggunakan Anotasi dalam manifes Service, jangan sesuaikan bobot tersebut di Konsol karena dapat menyebabkan inkonsistensi status.

Dokumen terkait