All Products
Search
Document Center

Container Service for Kubernetes:Deploy Layanan di Beberapa Kluster dengan Menggunakan Ulang Load Balancer yang Ada

Last Updated:Mar 27, 2026

Cloud Controller Manager (CCM) memungkinkan Anda menyambungkan instans Server Load Balancer (SLB) yang sudah ada ke layanan di satu atau beberapa kluster ACK serta ke titik akhir di luar kluster tersebut. Dengan satu instans SLB yang berfungsi sebagai ingress terpadu, Anda tidak perlu menyediakan load balancer terpisah untuk setiap kluster—berguna ketika membutuhkan disaster recovery, ketersediaan tinggi, atau isolasi keamanan antar kluster.

Dua skenario dibahas:

  • Skenario 1: Mendistribusikan traffic antara layanan di dalam kluster dan titik akhir eksternal (misalnya, instans Elastic Compute Service (ECS)).

  • Skenario 2: Mendistribusikan traffic di antara layanan di kluster ACK yang berbeda.

Prasyarat

Sebelum memulai, pastikan Anda telah:

Skenario 1: Mendistribusikan traffic ke layanan kluster dan titik akhir eksternal

Sambungkan layanan di dalam kluster dan titik akhir eksternal ke instans SLB yang sama. Instans SLB tersebut mengarahkan traffic ke keduanya. Saat Pod diskalakan, Pod tersebut secara otomatis ditambahkan atau dihapus dari kelompok vServer tanpa memengaruhi titik akhir eksternal.

image

Langkah 1: Dapatkan ID instans SLB

Masuk ke CLB console atau NLB console dan catat ID instans SLB yang sudah ada.

Langkah 2: Buat layanan menggunakan instans SLB yang ada

Gunakan Konsol ACK

Di ACK console, buat layanan dengan pengaturan berikut:

  • Atur Service Type ke SLB.

  • Pilih Use Existing Resource, lalu pilih instans SLB dari daftar drop-down.

  • Pilih Overwrite Existing Listeners.

Gunakan kubectl

Tambahkan anotasi berikut ke manifes layanan Anda:

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id: "<YOUR_LB_ID>"            # ID dari instance SLB bersama.
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vgroup-port: "<YOUR_VGROUP_ID>:<PORT>"  # ID kelompok vServer dan port Service, dipisahkan oleh titik dua.
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-weight: "100"                # (Opsional) Bobot lalu lintas untuk pod backend dari Service ini. Nilai yang valid: 1–1000. Default: 100.
  labels:
    #...
  name: #...
spec:
  #...
Penting

Setelah layanan dibuat, CCM membuat kelompok vServer dan listener yang mendengarkan pada port layanan untuk instans SLB tersebut.

Langkah 3: Tambahkan titik akhir eksternal ke kelompok vServer

Masuk ke CLB console atau NLB console dan tambahkan titik akhir eksternal Anda (misalnya, instans ECS) ke kelompok vServer yang dibuat oleh CCM. Untuk petunjuknya, lihat Create and manage a CLB vServer group dan Create and manage a vServer group.

Setelah Anda menambahkan titik akhir eksternal, baik Pod kluster maupun titik akhir eksternal akan muncul di kelompok vServer, dan Anda dapat mengatur bobot relatifnya.

Skenario 2: Mendistribusikan traffic di antara layanan di kluster ACK yang berbeda

Sambungkan layanan dari kluster ACK yang berbeda ke instans SLB yang sama. CCM di setiap kluster menjaga sinkronisasi kelompok vServer saat Pod diskalakan, tanpa memengaruhi server backend yang didaftarkan oleh kluster lain.

image

Batasan

Tinjau batasan berikut sebelum memulai:

  • Semua layanan yang berbagi instans SLB harus menggunakan port yang sama.

  • Layanan yang dideploy di namespace yang sama di berbagai kluster harus memiliki nama yang berbeda.

  • Jika Anda mengatur bobot traffic menggunakan anotasi alibaba-cloud-loadbalancer-weight, kelola bobot hanya melalui anotasi tersebut—jangan ubah bobot di SLB console, karena perubahan di konsol tidak disinkronkan kembali ke layanan.

Langkah 1: Buat listener dan kelompok vServer secara manual

Masuk ke CLB console atau NLB console dan buat listener serta kelompok vServer secara manual untuk instans SLB tersebut. Untuk petunjuknya, lihat CLB listeners, Create and manage a CLB vServer group, NLB listeners, dan Create and manage a server group.

Pembuatan listener dan kelompok vServer secara manual diperlukan agar semua kluster dapat berbagi kelompok yang sama—CCM di setiap kluster mendaftarkan Pod-nya sendiri ke kelompok bersama ini.

Langkah 2: Buat layanan dengan anotasi kelompok vServer bersama

Di setiap kluster, buat layanan dengan anotasi di bawah ini. Semua layanan harus mereferensikan instans SLB dan kelompok vServer yang sama.

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id: "<YOUR_LB_ID>"            # ID instans SLB bersama.
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vgroup-port: "<YOUR_VGROUP_ID>:<PORT>"  # ID kelompok vServer dan port layanan, dipisahkan dengan tanda titik dua.
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-weight: "100"                # (Opsional) Bobot traffic untuk Pod backend layanan ini. Nilai valid: 1–1000. Default: 100.
  labels:
    #...
  name: #...
spec:
  #...

Referensi anotasi

Anotasi Tipe Default Deskripsi
alibaba-cloud-loadbalancer-id string ID instans SLB yang sudah ada. CCM menyambungkan layanan ke instans ini alih-alih membuat yang baru.
alibaba-cloud-loadbalancer-vgroup-port string Memetakan port layanan ke kelompok vServer: <vgroup-id>:<port>. Untuk beberapa pemetaan port-ke-kelompok vServer, pisahkan dengan koma — misalnya, "<VGROUP_ID_1>:80, <VGROUP_ID_2>:443".
alibaba-cloud-loadbalancer-weight integer 100 Bobot traffic untuk semua Pod backend layanan ini. Nilai valid: 1–1000. Saat diatur, CCM menggunakan nilai ini untuk mendaftarkan bobot Pod di kelompok vServer — kelola bobot hanya melalui anotasi ini, bukan di SLB console.

Setelah Anda menerapkan manifes layanan, Pod dari setiap kluster akan muncul di kelompok vServer bersama di SLB console. Saat aplikasi diskalakan, Pod-nya secara otomatis ditambahkan atau dihapus dari kelompok tersebut, tanpa memengaruhi Pod milik layanan lain.

Langkah selanjutnya

Referensi