全部产品
Search
文档中心

Container Service for Kubernetes:Gunakan instance SLB yang ada untuk mengekspos Layanan di cluster ACK yang berbeda

更新时间:Jul 06, 2025

Untuk meningkatkan kemampuan pemulihan bencana, keandalan, dan isolasi keamanan, Anda dapat menerapkan Layanan di lintas cluster. Dalam skenario ini, jika semua Layanan backend bertipe LoadBalancer, beberapa instance Server Load Balancer (SLB) digunakan, yang menyebabkan pemborosan sumber daya. Anda dapat menggunakan komponen cloud-controller-manager untuk memasang instance SLB yang ada ke titik akhir di dalam dan luar cluster. Ini memungkinkan Anda untuk mengekspos Layanan di cluster yang berbeda dengan satu instance SLB dan mengatur bobot Layanan tersebut.

Prasyarat

Skenario 1: Mendistribusikan lalu lintas ke Layanan di dalam cluster dan titik akhir di luar cluster

Anda dapat memasang Layanan di dalam cluster dan titik akhir di luar cluster, seperti instance Elastic Compute Service (ECS), ke instance SLB yang sama.

  1. Masuk ke konsol CLB atau konsol NLB dan lihat ID instance SLB yang ada.

  2. Pilih instance SLB saat Anda membuat Layanan.

    Gunakan konsol

    Saat Anda membuat Layanan di konsol ACK, atur Service Type menjadi SLB dan pilih Use Existing Resource. Kemudian, pilih instance SLB dari daftar drop-down dan pilih Overwrite Existing Listeners.

    Gunakan kubectl

    Saat Anda menggunakan kubectl untuk membuat Layanan, tambahkan anotasi untuk menentukan ID instance SLB.

    apiVersion: v1
    kind: Service
    metadata:
      annotations:
        service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id: ${LB_ID} # Ganti ${LB_ID} dengan ID instance SLB.
        service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners: "true"  # Atur nilai menjadi true untuk secara otomatis membuat pendengar dan grup vServer.
      labels:
        #...
      name: #...
    spec:
      #...
    Penting

    Setelah Layanan dibuat, cloud-controller-manager membuat grup vServer dan pendengar yang terkait dengan grup vServer serta mendengarkan port Layanan untuk instance SLB.

  3. Masuk ke konsol CLB atau konsol NLB. Tambahkan titik akhir di luar cluster ke grup vServer. Untuk informasi lebih lanjut, lihat Buat dan kelola grup vServer CLB dan Buat dan kelola grup vServer.

    Setelah konfigurasi selesai, Anda dapat menemukan pod dan titik akhir eksternal di grup vServer serta mengatur bobotnya. Saat aktivitas penskalaan dipicu, pod secara otomatis ditambahkan ke atau dihapus dari grup vServer. Aktivitas penskalaan tidak memengaruhi titik akhir eksternal.

Skenario 2: Mendistribusikan lalu lintas ke Layanan di cluster ACK yang berbeda

Anda dapat memasang Layanan di cluster ACK yang berbeda ke instance SLB yang sama. Instance SLB berfungsi sebagai ingress terpadu.

Untuk memperbarui titik akhir instance SLB secara otomatis saat pod backend Layanan diubah, Anda harus mengonfigurasi Layanan untuk menggunakan pendengar dan grup vServer yang sama dari instance SLB. Untuk melakukannya, buat pendengar dan grup vServer untuk instance SLB secara manual, lalu konfigurasikan Layanan untuk menggunakan kembali grup vServer dan pendengar untuk mendengarkan port Layanan.

Penting
  • Layanan di cluster ACK yang berbeda harus menggunakan port yang sama.

  • Layanan harus memiliki nama yang berbeda jika diterapkan di namespace yang sama.

  1. Masuk ke konsol CLB atau konsol NLB dan buat pendengar dan grup vServer untuk instance SLB. Untuk informasi lebih lanjut, lihat Pendengar CLB, Buat dan kelola grup vServer CLB, Pendengar NLB, dan Buat dan kelola grup server.

  2. Saat Anda membuat Layanan, gunakan kembali grup vServer yang Anda buat secara manual.

    Untuk melakukannya, tambahkan anotasi ke Layanan untuk menentukan ID instance SLB dan grup vServer. Anda juga dapat mengatur bobot Layanan.

    apiVersion: v1
    kind: Service
    metadata:
      annotations:
        service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id: "${YOUR_LB_ID}" # Ganti ${YOUR_LB_ID} dengan ID instance SLB.
        service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vgroup-port: "${YOUR_VGROUP_ID}:{PORT}" # Ganti ${YOUR_VGROUP_ID} dengan ID grup vServer dan {PORT} dengan port Layanan.
        service.beta.kubernetes.io/alibaba-cloud-loadbalancer-weight: "100" # Anotasi ini opsional. Anotasi ini menentukan bobot pod backend Layanan. Nilai valid: 1 hingga 1000. Nilai default: 100.
      labels:
        #...
      name: #...
    spec:
      #...
    Catatan

    Jika Anda ingin mengatur service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vgroup-port ke beberapa pemetaan port ke grup vServer, pisahkan pemetaan dengan koma (,). Contoh: "${YOUR_VGROUP_ID_1}:80, ${YOUR_VGROUP_ID_2}:443".

    Setelah konfigurasi selesai, Anda dapat menemukan pod Layanan di grup vServer di konsol SLB. Jika aplikasi diskalakan, pod secara otomatis ditambahkan ke atau dihapus dari grup vServer untuk aplikasi tersebut. Pod yang termasuk dalam aplikasi lain tidak terpengaruh.

    Penting

    Jika Anda telah mengatur bobot Layanan dengan menambahkan anotasi terkait, jangan modifikasi bobot di konsol karena perubahan tersebut tidak dapat disinkronkan ke Layanan.

Referensi