All Products
Search
Document Center

Container Service for Kubernetes:Konfigurasi Classic Load Balancer (CLB) dengan anotasi

Last Updated:Apr 25, 2026

Untuk load balancing tingkat lanjut, Anda dapat mengonfigurasi Classic Load Balancer (CLB), listener, dan grup server backend dengan menambahkan anotasi ke file YAML Service.

Indeks

Kategori

Kategori fitur

Tautan konfigurasi

Penggunaan anotasi

Operasi CLB umum

Buat Classic Load Balancer

Tentukan instans yang sudah ada

Konfigurasi CLB

Aktifkan perlindungan instans

Operasi listener umum

Pengaturan persistensi sesi

Konfigurasi port dan protokol

Pengaturan lanjutan

Operasi grup server backend umum

Manajemen konfigurasi

Dokumen terkait

Penggunaan anotasi

  • Anotasi bersifat case-sensitive.

  • Sebelum menggunakan anotasi, verifikasi versi komponen CCM yang diperlukan. Untuk meningkatkan komponen CCM, lihat manajemen komponen. Untuk changelog komponen CCM, lihat Cloud Controller Manager.

  • Per 11 September 2019, alicloud dalam bidang annotations telah diperbarui menjadi alibaba-cloud.

    Contoh:

    Sebelumnya: service.beta.kubernetes.io/alicloud-loadbalancer-id

    Sesudah: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id

    Sistem masih mendukung anotasi lama alicloud, sehingga Anda tidak perlu memodifikasi konfigurasi yang sudah ada.

Operasi CLB umum

Buat load balancer publik

apiVersion: v1
kind: Service
metadata:
  name: nginx
  namespace: default
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

Buat load balancer privat

Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type

Deskripsi

Versi CCM yang didukung

Menentukan jenis alamat load balancer. Nilai yang valid:

  • internet: Layanan diakses melalui jaringan publik. Address Type CLB yang sesuai harus Public.

  • intranet: Layanan diakses melalui jaringan privat. Address Type CLB yang sesuai harus Private.

Nilai default: internet

Kami menyarankan agar Anda secara manual menentukan VSwitch untuk CLB. Untuk informasi lebih lanjut, lihat Tentukan VSwitch untuk load balancer. Jika Anda tidak menentukan VSwitch, sistem akan memilih satu secara otomatis berdasarkan versi CCM:

  • Untuk versi sebelum v2.13.0, sistem menggunakan VSwitch pertama yang dikonfigurasi di lapisan kontrol kluster secara default.

  • Untuk versi v2.13.0 dan seterusnya, sistem secara otomatis memilih VSwitch dari semua VSwitch yang tersedia.

v1.9.3 dan seterusnya

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type: "intranet"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

Spesifikasi load balancer

Anotasi: Beberapa anotasi digunakan, seperti dijelaskan dalam tabel berikut.

Anotasi

Deskripsi

Versi CCM yang didukung

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-instance-charge-type

Jenis biaya instans. Nilai yang valid:

  • PayBySpec: bayar-per-spesifikasi.

  • PayByCLCU: bayar-sesuai-penggunaan.

Nilai default: PayBySpec

Penting
  • Untuk Cloud Controller Manager (CCM) versi v2.5.0 dan seterusnya, nilai default berubah menjadi PayByCLCU.

  • Anda tidak dapat menetapkan spesifikasi untuk load balancer bayar-sesuai-penggunaan. Oleh karena itu, Anda tidak dapat menetapkan nilai ke PayByCLCU dan menggunakan anotasi service.beta.kubernetes.io/alibaba-cloud-loadbalancer-spec secara bersamaan.

v2.4.0 dan seterusnya

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-spec

Spesifikasi instans load balancer. Gunakan anotasi ini untuk membuat instans CLB dengan spesifikasi tertentu atau memperbarui spesifikasi instans yang sudah ada. Nilai yang valid:

  • slb.s1.small

  • slb.s2.small

  • slb.s2.medium

  • slb.s3.small

  • slb.s3.medium

  • slb.s3.large

Nilai default: slb.s1.small

Untuk informasi lebih lanjut tentang nilai yang valid untuk opsi ini, lihat CreateLoadBalancer.

Penting

Jika Anda memodifikasi spesifikasi instans CLB bayar-per-spesifikasi di konsol CLB, CCM mungkin akan mengembalikan perubahan tersebut. Lakukan dengan hati-hati.

v1.9.3 dan seterusnya

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-instance-charge-type: "PayBySpec"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-spec: "slb.s1.small"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 443
    protocol: TCP
    targetPort: 443
  selector:
    run: nginx
  type: LoadBalancer

Gunakan load balancer yang sudah ada

Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id

Deskripsi

Versi CCM yang didukung

Penting
  • Untuk mencegah perilaku tak terduga seperti ketidaktersediaan kluster atau gangguan trafik, jangan gunakan kembali CLB API Server atau CLB yang dibuat oleh CCM. Sebagai gantinya, buat instans baru secara manual di Konsol Classic Load Balancer (CLB).

  • Jangan tambahkan atau modifikasi anotasi reuse pada Service LoadBalancer yang sudah ada. Jika tidak, operasi reuse mungkin gagal, atau CCM mungkin tidak melepas load balancer dengan benar.

ID instans load balancer. Gunakan anotasi ini untuk menentukan CLB yang sudah ada.

  • Secara default, menggunakan kembali instans load balancer yang sudah ada tidak menimpa listener-nya. Untuk memaksa overwrite listener yang sudah ada, atur anotasi service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners ke "true". Pengaturan ini hanya memengaruhi listener layanan saat ini dan tidak berdampak pada listener lainnya.

    Catatan

    Secara default, menggunakan kembali load balancer yang sudah ada tidak menimpa listener yang sudah ada karena alasan berikut:

    • Jika listener pada load balancer yang sudah ada sedang memproses trafik untuk layanan lain, overwrite paksa dapat menyebabkan gangguan layanan.

    • CCM memberikan dukungan terbatas untuk konfigurasi backend dan mungkin tidak menangani pengaturan kompleks dengan benar. Jika Anda memiliki persyaratan backend yang kompleks, Anda dapat mengonfigurasi listener di konsol tanpa menimpanya.

    Karena alasan ini, hindari memaksa overwrite listener. Anda hanya dapat melakukan overwrite paksa jika port listener pada load balancer yang sudah ada tidak lagi digunakan.

  • (Untuk versi sebelum v2.10.0) Saat Anda menggunakan kembali load balancer yang sudah ada, Anda tidak dapat menambahkan tag tambahan menggunakan anotasi service.beta.kubernetes.io/alibaba-cloud-loadbalancer-additional-resource-tags.

v1.9.3.81-gca19cd4-aliyun dan seterusnya

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id: "${YOUR_LOADBALANCER_ID}"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 443
    protocol: TCP
    targetPort: 443
  selector:
    run: nginx
  type: LoadBalancer

Gunakan load balancer yang sudah ada dan paksa-overwrite listener

Anotasi: Beberapa anotasi digunakan, seperti dijelaskan dalam tabel berikut. Memaksa overwrite listener yang sudah ada akan menghapus listener tersebut jika terjadi konflik port.

Anotasi

Deskripsi

Versi CCM yang didukung

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id

Penting

Untuk mencegah perilaku tak terduga seperti ketidaktersediaan kluster atau gangguan trafik, jangan gunakan kembali CLB API Server atau CLB yang dibuat oleh CCM. Sebagai gantinya, buat instans baru secara manual di Konsol Classic Load Balancer (CLB).

ID instans load balancer. Gunakan anotasi ini untuk menentukan CLB yang sudah ada.

  • Secara default, menggunakan kembali instans load balancer yang sudah ada tidak menimpa listener-nya. Untuk memaksa overwrite listener yang sudah ada, atur anotasi service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners ke "true". Pengaturan ini hanya memengaruhi listener layanan saat ini dan tidak berdampak pada listener lainnya.

    Catatan

    Secara default, menggunakan kembali load balancer yang sudah ada tidak menimpa listener yang sudah ada karena alasan berikut:

    • Jika listener pada load balancer yang sudah ada sedang memproses trafik untuk layanan lain, overwrite paksa dapat menyebabkan gangguan layanan.

    • CCM memberikan dukungan terbatas untuk konfigurasi backend dan mungkin tidak menangani pengaturan kompleks dengan benar. Jika Anda memiliki persyaratan backend yang kompleks, Anda dapat mengonfigurasi listener di konsol tanpa menimpanya.

    Karena alasan ini, kami tidak menyarankan Anda memaksa overwrite listener. Anda hanya dapat melakukan overwrite paksa jika port listener pada load balancer yang sudah ada tidak lagi digunakan.

  • (Untuk versi sebelum v2.10.0) Saat Anda menggunakan kembali load balancer yang sudah ada, Anda tidak dapat menambahkan tag tambahan menggunakan anotasi service.beta.kubernetes.io/alibaba-cloud-loadbalancer-additional-resource-tags.

v1.9.3.81-gca19cd4-aliyun dan seterusnya

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners

Saat menggunakan kembali load balancer yang sudah ada, anotasi ini menentukan apakah akan menyinkronkan konfigurasi listener layanan dengan CLB.

  • "true": CCM mengelola listener CLB yang terkait dengan layanan berdasarkan konfigurasi layanan (buat, perbarui, dan hapus). Tidak memengaruhi listener yang tidak dikelolanya.

  • "false": CCM tidak melakukan perubahan apa pun pada listener CLB.

Nilai default: "false"

Penting

Untuk menghindari konflik konfigurasi listener, jangan konfigurasi beberapa layanan untuk menggunakan kembali listener yang sama pada instans CLB saat force-override diatur ke "true".

v1.9.3.81-gca19cd4-aliyun dan seterusnya

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id: "${YOUR_LOADBALANCER_ID}"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners: "true"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 443
    protocol: TCP
    targetPort: 443
  selector:
    run: nginx
  type: LoadBalancer

Tentukan zona ketersediaan primer dan cadangan

Anotasi: Beberapa anotasi digunakan, seperti dijelaskan dalam tabel berikut. Zona ketersediaan primer dan cadangan tidak dapat diubah setelah pembuatan.

Load balancer di beberapa wilayah tidak mendukung zona ketersediaan primer dan cadangan. Untuk informasi lebih lanjut, lihat halaman pembuatan instans di Konsol CLB.

Anotasi

Deskripsi

Versi CCM yang didukung

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-master-zoneid

ID zona ketersediaan untuk server backend primer.

v1.9.3.10-gfb99107-aliyun dan seterusnya

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-slave-zoneid

ID zona ketersediaan untuk server backend cadangan.

v1.9.3.10-gfb99107-aliyun dan seterusnya

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-master-zoneid: "cn-hangzhou-k"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-slave-zoneid: "cn-hangzhou-j"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

Buat load balancer bayar-per-bandwidth

Anotasi: Beberapa anotasi digunakan. Dua anotasi berikut wajib.

Anotasi

Deskripsi

Versi CCM yang didukung

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-charge-type

Jenis biaya instans load balancer. Nilai yang valid:

  • paybytraffic

  • paybybandwidth

Nilai default: paybytraffic

v1.9.3 dan seterusnya

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-bandwidth

Bandwidth puncak load balancer. Nilai default: 50. Anotasi ini hanya berlaku untuk load balancer publik. Untuk batasan lainnya, lihat Ubah metode penagihan instans load balancer publik.

v1.9.3.10-gfb99107-aliyun dan seterusnya

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-charge-type: "paybybandwidth"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-bandwidth: "2"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 443
    protocol: TCP
    targetPort: 443
  selector:
    run: nginx
  type: LoadBalancer

Tentukan VSwitch untuk load balancer

Anotasi: Beberapa anotasi digunakan. Dua anotasi berikut wajib.

Anotasi

Deskripsi

Versi CCM yang didukung

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type

Menentukan jenis alamat load balancer. Nilai yang valid:

  • internet: Layanan diakses melalui jaringan publik. Address Type CLB yang sesuai harus Public.

  • intranet: Layanan diakses melalui jaringan privat. Address Type CLB yang sesuai harus Private.

Nilai default: internet

v1.9.3 dan seterusnya

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vswitch-id

ID VSwitch untuk instans load balancer. VSwitch harus berada di Virtual Private Cloud (VPC) yang sama dengan kluster Kubernetes.

Saat Anda menggunakan anotasi ini, Anda juga harus mengatur service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type ke "intranet".

Untuk menemukan ID VSwitch, buka Konsol Virtual Private Cloud.

v1.9.3 dan seterusnya

apiVersion: v1
kind: Service
metadata:
  annotations:
   service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type: "intranet"
   service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vswitch-id: "${YOUR_VSWITCH_ID}"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 443
    protocol: TCP
    targetPort: 443
  selector:
    run: nginx
  type: LoadBalancer

Tentukan alamat IP untuk load balancer privat

Anotasi: Beberapa anotasi digunakan. Tiga anotasi berikut wajib.

Anotasi

Deskripsi

Versi CCM yang didukung

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type

Menentukan jenis alamat load balancer. Nilai yang valid:

  • internet: Layanan diakses melalui jaringan publik. Ini adalah nilai default. Address Type CLB yang sesuai harus Public.

  • intranet: Layanan diakses melalui jaringan privat. Address Type CLB yang sesuai harus Private.

Nilai default: internet

v1.9.3 dan seterusnya

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vswitch-id

ID VSwitch untuk instans load balancer. VSwitch harus berada di Virtual Private Cloud (VPC) yang sama dengan kluster Kubernetes.

Saat Anda menggunakan anotasi ini, Anda juga harus mengatur service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type ke "intranet".

Untuk menemukan ID VSwitch, Anda dapat login ke Konsol Virtual Private Cloud.

v1.9.3 dan seterusnya

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip

Alamat IP instans load balancer privat.

  • Alamat IP harus berada dalam Blok CIDR VSwitch yang ditentukan. Hanya alamat IPv4 yang didukung. Anotasi ini harus digunakan bersama dengan service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vswitch-id.

  • Alamat IP tidak dapat diubah setelah instans load balancer dibuat.

v2.7.0 dan seterusnya

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type: "intranet"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vswitch-id: "${YOUR_VSWITCH_ID}"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip: "192.168.x.x"
  name: nginx
  namespace: default
spec:
  type: LoadBalancer
  ports:
    - port: 80
      targetPort: 80
      name: http
  selector:
    app: nginx

Tambahkan tag tambahan ke load balancer

Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-additional-resource-tags

Deskripsi

Versi CCM yang didukung

Daftar tag yang dipisahkan koma untuk ditambahkan, seperti "k1=v1,k2=v2". Di versi CCM v2.10.0 dan seterusnya, Anda dapat memodifikasi tag instans yang sudah ada dan digunakan kembali.

Penting

Setelah Anda menambahkan anotasi ini ke layanan, modifikasi selanjutnya terhadap tag instans load balancer yang sesuai di konsol mungkin akan ditimpa.

v1.9.3 dan seterusnya

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-additional-resource-tags: "Key1=Value1,Key2=Value2" 
  name: nginx
  namespace: default
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

Buat load balancer IPv6

Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip-version

Deskripsi

Versi CCM yang didukung

Versi IP instans load balancer. Versi IP tidak dapat diubah setelah instans dibuat. Untuk menggunakan fitur ini, mode kube-proxy kluster Anda harus IPVS. Nilai yang valid:

  • ipv4: IPv4.

  • ipv6: IPv6. Alamat IPv6 yang dihasilkan hanya dapat diakses dari lingkungan yang mendukung IPv6.

Nilai default: ipv4

v1.9.3.220-g24b1885-aliyun dan seterusnya

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip-version: "ipv6"
  name: nginx
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    app: nginx
  type: LoadBalancer

Aktifkan perlindungan penghapusan untuk load balancer

Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-delete-protection

Deskripsi

Versi CCM yang didukung

Pengaturan perlindungan penghapusan untuk load balancer. Nilai yang valid:

  • on

  • off

Nilai default: on

Penting

Untuk load balancer yang dibuat oleh layanan LoadBalancer, jika Anda mengaktifkan perlindungan penghapusan di konsol CLB, Anda tetap dapat menghapus load balancer yang terkait dengan layanan dengan menjalankan kubectl delete svc {your-svc-name}.

v1.9.3.313-g748f81e-aliyun dan seterusnya

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-delete-protection: "on"
  name: nginx
spec:
  externalTrafficPolicy: Local
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    app: nginx
  type: LoadBalancer

Aktifkan perlindungan modifikasi untuk load balancer

Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-modification-protection

Deskripsi

Versi CCM yang didukung

Pengaturan perlindungan modifikasi untuk load balancer. Nilai yang valid:

  • ConsoleProtection

  • NonProtection

Nilai default: ConsoleProtection

v1.9.3.313-g748f81e-aliyun dan seterusnya

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-modification-protection: "ConsoleProtection"
  name: nginx
spec:
  externalTrafficPolicy: Local
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    app: nginx
  type: LoadBalancer

Tentukan nama load balancer

Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-name

Deskripsi

Versi CCM yang didukung

Nama instans load balancer. Nama harus terdiri dari 2 hingga 128 karakter. Harus dimulai dengan huruf (tidak case-sensitive) atau karakter Tionghoa dan dapat berisi angka, titik (.), garis bawah (_), dan tanda hubung (-).

v1.9.3.313-g748f81e-aliyun dan seterusnya

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-name: "your-svc-name"
  name: nginx
spec:
  externalTrafficPolicy: Local
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    app: nginx
  type: LoadBalancer

Tentukan kelompok sumber daya untuk load balancer

Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-resource-group-id

Deskripsi

Versi CCM yang didukung

ID kelompok sumber daya load balancer. ID kelompok sumber daya tidak dapat diubah setelah load balancer dibuat. Untuk menemukan ID kelompok sumber daya, buka Konsol Resource Management.

v1.9.3.313-g748f81e-aliyun dan seterusnya

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-resource-group-id: "rg-xxxx"
  name: nginx
spec:
  externalTrafficPolicy: Local
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    app: nginx
  type: LoadBalancer

Atur hostname untuk layanan

Anotasi: Beberapa anotasi digunakan, seperti dijelaskan dalam tabel berikut.

Anotasi

Deskripsi

Versi CCM yang didukung

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port

Pisahkan beberapa nilai dengan koma (,), misalnya, https:443,http:80.

v1.9.3 dan seterusnya

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-hostname

Menetapkan hostname untuk layanan. Hostname harus mengikuti konvensi penamaan DNS.

Catatan:

  • Setelah Anda menambahkan anotasi ini, EXTERNAL-IP layanan berubah dari alamat IP CLB default menjadi your_service_name. Saat Anda mengakses alamat IP CLB dari dalam kluster, trafik akan hairpin melalui CLB lalu kembali ke kluster.

  • Setelah Anda menambahkan anotasi ini, jika protokol listener adalah TCP atau UDP, mengakses alamat IP CLB dari dalam kluster dapat menyebabkan masalah hairpinning. Untuk informasi lebih lanjut, lihat Klien tidak dapat mengakses load balancer.

  • Anotasi ini tidak secara otomatis mengikat instans CLB ke nama domain. Anda harus membeli nama domain lalu mengikatnya secara manual ke instans. Untuk informasi tentang pembelian nama domain, lihat Apa itu Alibaba Cloud DNS?.

v2.3.0 dan seterusnya

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "http:80"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-hostname: "${your_service_hostname}"
  name: nginx-svc
  namespace: default
spec:
  ports:
  - name: http
    port: 80
    protocol: TCP
    targetPort: 80
  selector:
    app: nginx
  type: LoadBalancer

Output yang diharapkan:

NAME         TYPE           CLUSTER-IP       EXTERNAL-IP            PORT(S)                      AGE
nginx-svc    loadBalancer   47.100.XX.XX     www.example.com        80:30248/TCP,443:32670/TCP   10s

Buat load balancer bayar sesuai penggunaan

Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-instance-charge-type

Deskripsi

Versi CCM yang didukung

Jenis biaya instans. Nilai yang valid:

  • PayBySpec: bayar-per-spesifikasi.

  • PayByCLCU: bayar-sesuai-penggunaan.

Nilai default: PayBySpec

Penting
  • Untuk Cloud Controller Manager (CCM) versi v2.5.0 dan seterusnya, nilai default berubah menjadi PayByCLCU.

  • Anda tidak dapat menetapkan spesifikasi untuk load balancer bayar-sesuai-penggunaan. Oleh karena itu, Anda tidak dapat menetapkan nilai ke PayByCLCU dan menggunakan anotasi service.beta.kubernetes.io/alibaba-cloud-loadbalancer-spec secara bersamaan.

v2.4.0 dan seterusnya

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-instance-charge-type: "PayByCLCU"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

Operasi listener

Konfigurasi timeout persistensi sesi untuk listener TCP

Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-persistence-timeout

Deskripsi

Versi CCM yang didukung

Mengatur timeout persistensi sesi dalam detik untuk listener TCP. Secara default, pengaturan ini berlaku untuk semua listener TCP pada load balancer.

Nilai harus berupa bilangan bulat dari 0 hingga 3600. Nilai 0 menonaktifkan persistensi sesi. Untuk informasi lebih lanjut, lihat CreateLoadBalancerTCPListener.

v1.9.3 dan seterusnya

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-persistence-timeout: "1800"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 443
    protocol: TCP
    targetPort: 443
  selector:
    run: nginx
  type: LoadBalancer

Konfigurasi sesi lengket (insert cookie)

Anotasi: Anotasi yang tersedia dijelaskan dalam tabel berikut. Untuk menggunakan metode insert cookie, empat anotasi berikut wajib.

  • Fitur ini hanya mendukung instans load balancer yang menggunakan protokol HTTP atau HTTPS.

  • Jika Anda mengonfigurasi beberapa port listener HTTP atau HTTPS, pengaturan sesi lengket berlaku untuk semuanya secara default.

Anotasi

Deskripsi

Versi CCM yang didukung

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-session

Menentukan apakah akan mengaktifkan sesi lengket. Anotasi ini hanya berlaku untuk listener HTTP dan HTTPS. Nilai yang valid:

  • on

  • off

Nilai default: off

Untuk informasi lebih lanjut, lihat CreateLoadBalancerHTTPListener dan CreateLoadBalancerHTTPSListener.

v1.9.3 dan seterusnya

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-session-type

Jenis sesi lengket. Anotasi ini hanya berlaku untuk listener HTTP dan HTTPS. Anotasi ini wajib saat service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-session diatur ke on. Nilai yang valid:

  • insert: Menyisipkan cookie.

  • server: Menulis ulang cookie.

Untuk informasi lebih lanjut, lihat CreateLoadBalancerHTTPListener dan CreateLoadBalancerHTTPSListener.

v1.9.3 dan seterusnya

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cookie-timeout

Timeout cookie. Parameter ini wajib saat service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-session diatur ke on dan service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-session-type diatur ke insert. Satuan dalam detik. Rentang nilai: [1, 86400].

Untuk informasi lebih lanjut, lihat CreateLoadBalancerHTTPListener dan CreateLoadBalancerHTTPSListener.

v1.9.3 dan seterusnya

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cookie

Nama cookie yang dikonfigurasi di server.

Nama harus terdiri dari 1 hingga 200 karakter dan hanya berisi huruf ASCII dan angka. Nama tidak boleh mengandung koma (,), titik koma (;), atau spasi. Nama tidak boleh dimulai dengan tanda dolar ($).

Parameter ini wajib saat service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-session diatur ke on dan service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-session-type diatur ke server.

Untuk informasi lebih lanjut, lihat CreateLoadBalancerHTTPListener dan CreateLoadBalancerHTTPSListener.

v1.9.3 dan seterusnya

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port

Pisahkan beberapa nilai dengan koma (,), misalnya, https:443,http:80.

v1.9.3 dan seterusnya

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-session: "on"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-session-type: "insert"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cookie-timeout: "1800"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "http:80"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

Konfigurasi daftar kontrol akses

Anotasi: Tiga anotasi berikut wajib.

Sebelum menggunakan anotasi ini untuk membuat load balancer dengan kontrol akses, buat daftar kontrol akses di Konsol Classic Load Balancer (CLB) dan catat ID-nya (acl-id).

Anotasi

Deskripsi

Versi CCM

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-acl-status

Menentukan apakah akan mengaktifkan kontrol akses. Nilai yang valid:

  • on

  • off

Default: off

v1.9.3.164-g2105d2e-aliyun dan seterusnya

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-acl-id

ID daftar kontrol akses untuk listener. Parameter ini wajib saat service.beta.kubernetes.io/alibaba-cloud-loadbalancer-acl-status diatur ke "on".

v1.9.3.164-g2105d2e-aliyun dan seterusnya

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-acl-type

Jenis kontrol akses. Nilai yang valid:

  • white: Meneruskan permintaan hanya dari alamat IP atau blok alamat yang ditentukan dalam daftar kontrol akses. Jika Anda mengaktifkan daftar putih tetapi tidak menambahkan alamat IP apa pun ke dalamnya, listener akan meneruskan semua permintaan.

  • black: Memblokir permintaan dari alamat IP atau blok alamat yang ditentukan dalam daftar kontrol akses. Jika Anda mengaktifkan daftar hitam tetapi tidak menambahkan alamat IP apa pun ke dalamnya, listener akan meneruskan semua permintaan.

v1.9.3.164-g2105d2e-aliyun dan seterusnya

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-acl-status: "on"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-acl-id: "${YOUR_ACL_ID}" # Daftar kontrol akses ganda tidak didukung.
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-acl-type: "white"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 443
    protocol: TCP
    targetPort: 443
  selector:
    run: nginx
  type: LoadBalancer

Konfigurasi penerusan port untuk load balancer

Penerusan port mengarahkan permintaan dari port HTTP ke port HTTPS.

Anotasi: Tabel berikut menjelaskan tiga anotasi wajib.

Anotasi

Deskripsi

Versi CCM yang didukung

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port

Gunakan koma (,) untuk memisahkan beberapa nilai. Misalnya, https:443,http:80.

v1.9.3 dan seterusnya

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id

ID sertifikat di Alibaba Cloud.

Masuk ke konsol CLB dan lihat ID sertifikat pada halaman certificate management.

Catatan

Untuk membuat sertifikat, lihat Pilih sertifikat yang dikeluarkan Alibaba Cloud.

v1.9.3.164-g2105d2e-aliyun dan seterusnya

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-forward-port

Meneruskan permintaan HTTP ke port HTTPS yang ditentukan. Misalnya, 80:443.

v1.9.3.164-g2105d2e-aliyun dan seterusnya

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "https:443,http:80"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${YOUR_CERT_ID}"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-forward-port: "80:443"
  name: nginx
  namespace: default
spec:
  ports:
  - name: https
    port: 443
    protocol: TCP
    targetPort: 80
  - name: http
    port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

Konfigurasi algoritma penjadwalan

Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-scheduler

Deskripsi

Versi CCM yang didukung

Menentukan algoritma penjadwalan. Nilai yang valid:

  • wrr: weighted round robin. Server backend dengan bobot lebih tinggi menerima lebih banyak permintaan.

  • rr: round robin. Permintaan didistribusikan ke server backend secara berurutan.

  • sch: hash IP sumber (consistent hashing). Mengarahkan permintaan dari alamat IP sumber yang sama ke server backend yang sama.

  • tch: consistent hashing berdasarkan tupel 4 (alamat IP sumber, alamat IP tujuan, port sumber, dan port tujuan). Mengarahkan permintaan dari aliran yang sama ke server backend yang sama.

Nilai default: rr.

Untuk informasi lebih lanjut, lihat parameter Scheduler dalam referensi API untuk membuat listener CLB, seperti CreateTCPListener.

v1.9.3 dan seterusnya

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-scheduler: "wrr"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 443
    protocol: TCP
    targetPort: 443
  selector:
    run: nginx
  type: LoadBalancer

Buat listener UDP

apiVersion: v1
kind: Service
metadata:
  name: nginx
  namespace: default
spec:
  ports:
  - port: 80
    protocol: UDP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

Pendengar HTTP

Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port

  • Pemeriksaan kesehatan: Secara default, pemeriksaan kesehatan dinonaktifkan untuk listener HTTP. Untuk memastikan layanan backend Anda tersedia, konfigurasikan pemeriksaan kesehatan HTTP atau TCP untuk port listener.

  • Saat Anda mengakses Service menggunakan alamat IP Classic Load Balancer (CLB) dari dalam kluster, trafik permintaan mungkin dicegat, menyebabkan masalah akses. Untuk memaksa trafik hairpin melalui CLB, tambahkan anotasi yang diperlukan seperti dijelaskan dalam Atur Hostname untuk Service. Untuk informasi lebih lanjut, lihat Catatan tentang mengakses alamat IP eksternal Service LoadBalancer dari dalam kluster.

Deskripsi

Versi CCM yang didukung

Gunakan koma (,) untuk memisahkan beberapa nilai, misalnya, https:443,http:80.

v1.9.3 dan seterusnya

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "http:80"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

Buat listener HTTPS

Anotasi: Tabel berikut mencantumkan anotasi yang tersedia.

CLB mendekripsi permintaan HTTPS dan mengirimkannya ke pod backend sebagai permintaan HTTP.

  • Pemeriksaan kesehatan: Pemeriksaan kesehatan untuk listener HTTPS dinonaktifkan secara default. Untuk memastikan layanan backend Anda tersedia, konfigurasikan pemeriksaan kesehatan HTTP atau TCP untuk port listener.

  • Saat Anda mengakses Service menggunakan alamat IP Classic Load Balancer (CLB) dari dalam kluster, trafik permintaan mungkin dicegat, menyebabkan masalah akses. Untuk memaksa trafik hairpin melalui CLB, tambahkan anotasi yang diperlukan seperti dijelaskan dalam Atur Hostname untuk Service. Untuk informasi lebih lanjut, lihat Catatan tentang mengakses alamat IP eksternal Service LoadBalancer dari dalam kluster.

Anotasi

Deskripsi

Versi CCM yang didukung

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port

Gunakan koma (,) untuk memisahkan beberapa nilai, misalnya, https:443,http:80.

v1.9.3 dan seterusnya

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id

ID sertifikat dari Alibaba Cloud.

Login ke Konsol CLB dan lihat ID sertifikat di halaman certificate management.

Catatan

Untuk membuat sertifikat, lihat Pilih sertifikat yang ditandatangani Alibaba Cloud.

v1.9.3.164-g2105d2e-aliyun dan seterusnya

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "https:443"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${YOUR_CERT_ID}"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 443
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

Konfigurasi sertifikat domain tambahan

Anotasi: Tabel berikut mencantumkan anotasi yang tersedia.

Anotasi

Deskripsi

Versi CCM yang didukung

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port

Gunakan koma (,) untuk memisahkan beberapa nilai, misalnya, https:443,http:80.

v1.9.3 dan seterusnya

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id

ID sertifikat dari Alibaba Cloud.

Login ke Konsol CLB dan lihat ID sertifikat di halaman certificate management.

Catatan

Untuk membuat sertifikat, lihat Pilih sertifikat yang ditandatangani Alibaba Cloud.

v1.9.3.164-g2105d2e-aliyun dan seterusnya

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-domain-extensions

Tentukan nama domain tambahan dan ID sertifikat dalam format {domain_name}:{certificate_id}. Gunakan koma (,) untuk memisahkan beberapa entri.

Masuk ke konsol CLB dan lihat ID sertifikat pada halaman certificate management.

v2.13.0 dan seterusnya

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "https:443"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${YOUR_CERT_ID}"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-domain-extensions: "${DOMAIN_1}:${CERT_ID_1},${DOMAIN_2}:${CERT_ID_2}"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 443
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

Listener dengan pemeriksaan kesehatan

Pemeriksaan kesehatan TCP

Anotasi: Semua anotasi berikut wajib.

Pemeriksaan kesehatan diaktifkan secara default untuk port TCP.

Anotasi

Deskripsi

Versi CCM yang didukung

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-switch

Mengaktifkan atau menonaktifkan pemeriksaan kesehatan untuk listener TCP dan UDP. Nilai yang valid:

  • on

  • off

Nilai default: on

v2.6.0 dan seterusnya

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-type

Menentukan jenis pemeriksaan kesehatan. Nilai yang valid:

  • tcp

  • http

Nilai default: tcp. Untuk informasi lebih lanjut, lihat CreateLoadBalancerTCPListener.

v1.9.3 dan seterusnya

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout

Menentukan timeout respons untuk pemeriksaan kesehatan TCP. Jika instans ECS backend tidak merespons dalam waktu ini, pemeriksaan kesehatan gagal. Satuan: detik. Rentang nilai: [1, 300].

Jika nilai service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout kurang dari nilai service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval, timeout ini diabaikan, dan nilai interval yang digunakan. Nilai default: 5. Untuk informasi lebih lanjut, lihat CreateLoadBalancerTCPListener.

v1.9.3 dan seterusnya

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold

Menentukan jumlah pemeriksaan kesehatan berturut-turut yang berhasil diperlukan untuk mengubah status kesehatan server backend dari fail menjadi success.

Rentang nilai: [2, 10]. Nilai default: 3. Untuk informasi lebih lanjut, lihat CreateLoadBalancerTCPListener.

v1.9.3 dan seterusnya

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold

Menentukan jumlah pemeriksaan kesehatan berturut-turut yang gagal diperlukan untuk mengubah status kesehatan server backend dari success menjadi fail. Rentang nilai: [2, 10]. Nilai default: 3. Untuk informasi lebih lanjut, lihat CreateLoadBalancerTCPListener.

v1.9.3 dan seterusnya

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval

Menentukan interval antar pemeriksaan kesehatan, dalam detik. Rentang nilai: [1, 50]. Nilai default: 2. Untuk informasi lebih lanjut, lihat CreateLoadBalancerTCPListener.

v1.9.3 dan seterusnya

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-switch: "on"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-type: "tcp"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout: "8"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold: "4"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold: "4"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval: "3"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

Pemeriksaan kesehatan UDP

Anotasi: Anotasi dalam tabel berikut wajib.

Pemeriksaan kesehatan diaktifkan secara default untuk port UDP.

Anotasi

Deskripsi

Versi CCM yang didukung

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-switch

Menentukan apakah akan mengaktifkan pemeriksaan kesehatan untuk listener TCP dan UDP. Nilai yang valid:

  • on

  • off

Nilai default: on

v2.6.0 dan seterusnya

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout

Periode timeout untuk respons pemeriksaan kesehatan. Jika server backend tidak merespons dalam periode ini, pemeriksaan kesehatan gagal. Satuan: detik. Nilai harus berupa bilangan bulat dari 1 hingga 300.

Jika nilai service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout kurang dari nilai service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval, pengaturan service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout tidak valid, dan timeout diatur ke nilai service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval. Nilai default adalah 5. Untuk informasi lebih lanjut, lihat CreateLoadBalancerUDPListener.

v1.9.3 dan seterusnya

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold

Jumlah pemeriksaan kesehatan berturut-turut yang berhasil diperlukan untuk menandai server backend sebagai sehat.

Nilai harus berupa bilangan bulat dari 2 hingga 10. Nilai default adalah 3. Untuk informasi lebih lanjut, lihat CreateLoadBalancerUDPListener.

v1.9.3 dan seterusnya

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold

Jumlah pemeriksaan kesehatan berturut-turut yang gagal diperlukan untuk menandai server backend sebagai tidak sehat. Nilai harus berupa bilangan bulat dari 2 hingga 10. Nilai default adalah 3. Untuk informasi lebih lanjut, lihat CreateLoadBalancerUDPListener.

v1.9.3 dan seterusnya

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval

Interval antar pemeriksaan kesehatan, dalam detik. Nilai harus berupa bilangan bulat dari 1 hingga 50. Nilai default adalah 2. Untuk informasi lebih lanjut, lihat CreateLoadBalancerUDPListener.

v1.9.3 dan seterusnya

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-switch: "on"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval: "5"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout: "10"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold: "3"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold: "3"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 80
    protocol: UDP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

Nonaktifkan pemeriksaan kesehatan TCP dan UDP

Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-switch

Deskripsi

Versi CCM yang didukung

Menentukan apakah akan mengaktifkan pemeriksaan kesehatan untuk listener TCP dan UDP. Nilai yang valid:

  • on

  • off

Nilai default: on

v2.6.0 dan seterusnya

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-switch: "off" # Menonaktifkan pemeriksaan kesehatan.
  name: nginx
  namespace: default
spec:
  ports:
  - port: 443
    protocol: TCP
    targetPort: 443
  selector:
    run: nginx
  type: LoadBalancer

Pemeriksaan kesehatan HTTP

Anotasi: Tabel berikut menjelaskan anotasi yang tersedia.

Anotasi

Deskripsi

Versi CCM yang didukung

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-flag

Nilai yang valid:

  • on: Listener TCP secara default on dan tidak dapat diubah. Anda tidak perlu mengubah parameter anotasi ini untuk listener TCP.

  • off: Listener HTTP secara default off.

Nilai default: off

v1.9.3 dan seterusnya

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-type

Menentukan jenis pemeriksaan kesehatan. Nilai yang valid:

  • tcp

  • http

Nilai default: tcp

Untuk informasi lebih lanjut, lihat CreateLoadBalancerHTTPListener.

v1.9.3 dan seterusnya

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-uri

URI untuk pemeriksaan kesehatan. Anotasi ini hanya berlaku untuk pemeriksaan kesehatan HTTP.

v1.9.3 dan seterusnya

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-httpcode

Kode status HTTP yang menunjukkan pemeriksaan kesehatan berhasil. Pisahkan beberapa kode dengan koma (,). Nilai yang valid:

  • http_2xx

  • http_3xx

  • http_4xx

  • http_5xx

Nilai default: http_2xx

Untuk informasi lebih lanjut, lihat CreateLoadBalancerHTTPListener.

v1.9.3 dan seterusnya

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-domain

Nama domain yang digunakan untuk pemeriksaan kesehatan. Nilai yang valid:

  • $_ip: Menggunakan IP privat server backend untuk pemeriksaan kesehatan. Ini adalah default jika Anda menghilangkan anotasi.

  • domain: Nama domain, 1 hingga 80 karakter, hanya berisi huruf, angka, titik (.), dan tanda hubung (-).

Untuk informasi lebih lanjut, lihat CreateLoadBalancerHTTPListener.

v1.9.3 dan seterusnya

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-timeout

Waktu maksimum untuk menunggu respons pemeriksaan kesehatan. Jika instans ECS backend gagal merespons dalam periode ini, pemeriksaan kesehatan gagal.

Satuan: detik. Rentang nilai: [1, 300].

Jika nilai service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-timeout kurang dari nilai service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval, pengaturan service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-timeout diabaikan, dan timeout default menggunakan nilai anotasi service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval.

Untuk informasi lebih lanjut, lihat CreateLoadBalancerHTTPListener.

v1.9.3 dan seterusnya

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold

Jumlah pemeriksaan kesehatan berturut-turut yang berhasil diperlukan untuk menandai server backend yang gagal sebagai sehat.

Nilai harus berupa bilangan bulat dari 2 hingga 10. Nilai default adalah 3. Untuk informasi lebih lanjut, lihat CreateLoadBalancerHTTPListener.

v1.9.3 dan seterusnya

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold

Jumlah pemeriksaan kesehatan berturut-turut yang gagal diperlukan untuk menandai server backend yang sehat sebagai gagal. Nilai harus berupa bilangan bulat dari 2 hingga 10. Nilai default adalah 3. Untuk informasi lebih lanjut, lihat CreateLoadBalancerHTTPListener.

v1.9.3 dan seterusnya

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval

Interval antar pemeriksaan kesehatan, dalam detik. Nilai harus berupa bilangan bulat dari 1 hingga 50. Nilai default adalah 2. Untuk informasi lebih lanjut, lihat CreateLoadBalancerHTTPListener.

v1.9.3 dan seterusnya

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port

Pisahkan beberapa nilai dengan koma (,), misalnya, https:443,http:80.

v1.9.3 dan seterusnya

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-method

Metode HTTP untuk pemeriksaan kesehatan. Nilai yang valid:

  • head

  • get

v2.3.0 dan seterusnya

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-flag: "on"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-type: "http"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-uri: "/test/index.html"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold: "4"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold: "4"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-timeout: "10"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval: "3"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "http:80"
    # Opsional. Konfigurasikan kode status HTTP untuk pemeriksaan kesehatan.
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-httpcode: "http_4xx"
    # Opsional. Konfigurasikan nama domain untuk pemeriksaan kesehatan.
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-domain: "www.aliyun.com"
    # Opsional. Konfigurasikan metode pemeriksaan kesehatan.
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-method: "head"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

Aktifkan pengurasan koneksi

Anotasi: Untuk mengaktifkan fitur ini, Anda harus menentukan kedua anotasi yang dijelaskan dalam tabel berikut.

Fitur ini hanya mendukung listener TCP dan UDP.

Anotasi

Deskripsi

Versi CCM yang didukung

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-connection-drain

Mengaktifkan atau menonaktifkan pengurasan koneksi.

  • on

  • off

v2.0.1 dan seterusnya

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-connection-drain-timeout

Timeout untuk pengurasan koneksi, dalam detik. Rentang nilai: 10-900.

v2.0.1 dan seterusnya

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-connection-drain: "on"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-connection-drain-timeout: "30"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

Konfigurasi header permintaan listener

Anotasi: Anotasi yang tersedia dijelaskan dalam tabel berikut.

Hanya HTTP dan HTTPS yang didukung.

Anotasi

Deskripsi

Versi CCM yang didukung

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port

Gunakan koma (,) untuk memisahkan beberapa nilai, misalnya, https:443,http:80.

v1.9.3 dan seterusnya

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-xforwardedfor-proto

Menentukan apakah akan menggunakan header permintaan 'X-Forwarded-Proto' untuk mengambil protokol listener. Nilai yang valid:

  • on

  • off

Nilai default: off

v2.1.0 dan seterusnya

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-xforwardedfor-slbport

Menentukan apakah akan menggunakan header permintaan 'XForwardedFor_SLBPORT' untuk mengambil port listener instans load balancer. Nilai yang valid:

  • on

  • off

Nilai default: off

v2.9.1 dan seterusnya

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-xforwardedfor-clientsrcport

Menentukan apakah akan menggunakan header permintaan 'XForwardedFor_ClientSrcPort' untuk mengambil port sumber klien. Nilai yang valid:

  • on

  • off

Nilai default: off

v2.9.1 dan seterusnya

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "http:80"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-xforwardedfor-proto: "on"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-xforwardedfor-slbport: "on"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-xforwardedfor-clientsrcport: "on"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

Timeout idle koneksi

Anotasi: Beberapa. Lihat tabel berikut.

Hanya HTTP dan HTTPS yang didukung.

Anotasi

Deskripsi

Versi CCM yang didukung

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port

Pisahkan beberapa nilai dengan koma (,), misalnya, https:443,http:80.

v1.9.3 dan seterusnya

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-idle-timeout

Menentukan timeout idle koneksi untuk listener, dalam detik. Nilai harus dari 1 hingga 60.

Default: 15

v2.1.0 dan seterusnya

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "http:80"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-idle-timeout: "30"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

Nonaktifkan HTTP/2 untuk listener

Anotasi: Fitur ini menggunakan anotasi yang tercantum dalam tabel berikut.

Fitur ini hanya berlaku untuk listener HTTPS.

Anotasi

Deskripsi

Versi CCM yang didukung

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port

Gunakan koma (,) untuk memisahkan beberapa nilai, misalnya, https:443,http:80.

v1.9.3 dan seterusnya

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id

ID sertifikat di Alibaba Cloud.

Masuk ke konsol CLB dan temukan ID sertifikat pada halaman Certificate Management.

Catatan

Untuk membuat sertifikat, lihat Pilih sertifikat yang ditandatangani Alibaba Cloud.

v1.9.3.164-g2105d2e-aliyun dan seterusnya

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-http2-enabled

Mengaktifkan atau menonaktifkan HTTP/2. Nilai yang valid:

  • on

  • off

Nilai default: on

v2.1.0 dan seterusnya

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "https:443"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${YOUR_CERT_ID}"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-http2-enabled: "off"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 443
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

Atur timeout permintaan listener

Anotasi: Tabel berikut menjelaskan anotasi yang tersedia.

Hanya listener HTTP dan HTTPS yang didukung.

Anotasi

Deskripsi

Versi CCM yang didukung

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port

Gunakan koma untuk memisahkan beberapa nilai, misalnya, https:443,http:80.

v1.9.3 dan seterusnya

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-request-timeout

Timeout permintaan, dalam detik. Nilai harus berupa bilangan bulat dari 1 hingga 180. Nilai default: 60.

Jika server backend gagal merespons dalam timeout yang ditentukan, load balancer mengembalikan error HTTP 504 ke klien.

v2.3.0 dan seterusnya

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "http:80"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-request-timeout: "60"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

Atur batas waktu yang ditetapkan

Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-established-timeout

Hanya protokol TCP yang didukung.

Deskripsi

Versi CCM yang didukung

Timeout established dalam detik. Nilai yang valid: [10, 900]. Untuk detailnya, lihat CreateLoadBalancerTCPListener.

v2.3.0 dan seterusnya

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-established-timeout: "60"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

Konfigurasi kebijakan keamanan listener

Anotasi: Tabel berikut menjelaskan anotasi yang tersedia.

Hanya protokol HTTPS yang didukung.

Anotasi

Deskripsi

Versi CCM yang didukung

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port

Pisahkan beberapa nilai dengan koma, misalnya, https:443,http:80.

v1.9.3 dan seterusnya

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id

Menentukan ID sertifikat di Alibaba Cloud.

Untuk menemukan ID, login ke Konsol CLB dan navigasi ke halaman Certificate Management.

Catatan

Untuk membuat sertifikat, lihat Pilih sertifikat yang dikeluarkan Alibaba Cloud.

v1.9.3.164-g2105d2e-aliyun dan seterusnya

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-tls-cipher-policy

Kebijakan keamanan menentukan versi protokol TLS dan paket sandi yang didukung untuk listener HTTPS. Untuk informasi lebih lanjut, lihat CreateLoadBalancerHTTPSListener. Nilai yang valid:

  • tls_cipher_policy_1_0

  • tls_cipher_policy_1_1

  • tls_cipher_policy_1_2

  • tls_cipher_policy_1_2_strict

  • tls_cipher_policy_1_2_strict_with_1_3

Nilai default: tls_cipher_policy_1_0

v2.4.0 dan seterusnya

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "https:443,http:80"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${YOUR_CERT_ID}"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-tls-cipher-policy: "tls_cipher_policy_1_2"
  name: nginx
  namespace: default
spec:
  ports:
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  - name: http
    port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

TCP dan UDP pada listener

Catatan

Fitur ini memerlukan kluster Kubernetes v1.24 atau lebih baru. Untuk meningkatkan versi K8s kluster ACK, lihat Tingkatkan versi K8s kluster ACK.

apiVersion: v1
kind: Service
metadata:
  name: nginx
  namespace: default
spec:
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: udp
    port: 80
    protocol: UDP
    targetPort: 81
  selector:
    app: nginx
  sessionAffinity: None
  type: LoadBalancer

Konfigurasi proxy protocol

Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-proxy-protocol

Saat Anda mengakses layanan dari dalam kluster menggunakan alamat IP Cloud Load Balancer (CLB), trafik mungkin terputus dan menyebabkan masalah akses. Untuk memaksa trafik hairpin melalui CLB, tambahkan anotasi yang diperlukan seperti dijelaskan dalam Atur Hostname untuk Layanan. Untuk informasi lebih lanjut, lihat Catatan tentang Mengakses Alamat IP Eksternal Layanan LoadBalancer di Dalam Kluster.

Deskripsi

Versi CCM yang didukung

Konfigurasikan Proxy Protocol untuk listener TCP dan UDP. Saat diaktifkan, listener menggunakan Proxy Protocol untuk meneruskan alamat sumber klien ke server backend. Nilai yang valid:

  • on

  • off

Default: off

Penting

Fitur ini tidak mendukung perubahan online tanpa gangguan. Mengaktifkan atau menonaktifkan Proxy Protocol memerlukan restart layanan. Oleh karena itu, konfigurasikan pengaturan ini dengan hati-hati.

v2.6.0 dan seterusnya

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-proxy-protocol: "on"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 443
    protocol: TCP
    targetPort: 443
  selector:
    run: nginx
  type: LoadBalancer

Operasi umum untuk grup server backend

Gunakan node pekerja dengan label tertentu

Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-backend-label

Deskripsi

Versi CCM yang didukung

Menentukan node pekerja untuk ditambahkan sebagai server backend untuk instans Classic Load Balancer (CLB) berdasarkan label mereka. Pisahkan beberapa label dengan koma (,), misalnya, "k1=v1,k2=v2". Beberapa label menggunakan logika AND. Anotasi ini hanya berlaku saat jenis server backend diatur ke ecs.

v1.9.3 dan seterusnya

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-backend-label: "failure-domain.beta.kubernetes.io/zone=ap-southeast-5a"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 443
    protocol: TCP
    targetPort: 443
  selector:
    run: nginx
  type: LoadBalancer

Gunakan node yang menjadi host pod

Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-scheduler

Secara default, externalTrafficPolicy diatur ke Cluster, yang menambahkan semua node di kluster ke grup server backend. Dalam mode Local, hanya node yang menjalankan Pod layanan yang menjadi server backend.

Deskripsi

Versi CCM yang didukung

Algoritma penjadwalan. Nilai yang valid:

  • wrr: weighted round robin. Server backend dengan bobot lebih tinggi menerima proporsi permintaan yang lebih besar.

    Untuk layanan dalam mode Local, Anda harus mengatur algoritma penjadwalan ke weighted round robin (wrr).

    Catatan

    Untuk versi CCM v1.9.3.164-g2105d2e-aliyun dan seterusnya, jika layanan memiliki externalTrafficPolicy diatur ke Local, CCM secara otomatis mengatur bobot untuk setiap node berdasarkan jumlah Pod yang berjalan di atasnya. Untuk informasi lebih lanjut tentang cara menghitung bobot, lihat Bagaimana bobot node diatur secara otomatis dalam mode Local?

  • rr: round robin. Mendistribusikan permintaan ke server backend secara berurutan.

Nilai default: rr

v1.9.3 dan seterusnya

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-scheduler: "wrr"
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

Hapus unschedulable node

Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-remove-unscheduled-backend

Deskripsi

Versi CCM yang didukung

Menentukan apakah akan menghapus node dengan status SchedulingDisabled dari grup server backend instans Classic Load Balancer (CLB). Nilai yang valid:

  • on: Menghapus node dalam keadaan unschedulable dari grup server backend CLB.

  • off: Perintah kubectl cordon dan kubectl drain menandai node sebagai unschedulable. Nilai ini mempertahankan node dalam keadaan unschedulable dalam grup server backend CLB.

Nilai default: off

v1.9.3.164-g2105d2e-aliyun dan seterusnya

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-remove-unscheduled-backend: "on"
  name: nginx
spec:
  externalTrafficPolicy: Local
  ports:
  - name: http
    port: 30080
    protocol: TCP
    targetPort: 80
  selector:
    app: nginx
  type: LoadBalancer

Sambungkan ENI Pod ke grup server backend

Anotasi: service.beta.kubernetes.io/backend-type

Deskripsi

Default

Versi CCM yang didukung

Jenis server backend untuk instans Classic Load Balancer (CLB). Nilai yang valid:

  • eni: Menyambungkan Pod ke grup server backend CLB, meningkatkan kinerja penerusan jaringan. Nilai ini hanya berlaku untuk mode jaringan Terway.

    Dengan mengubah anotasi service.beta.kubernetes.io/backend-type: "eni", Anda juga dapat mengubah nilai dari eni ke ecs untuk menyambungkan instans Elastic Compute Service (ECS) ke grup server backend CLB.

  • ecs: Menyambungkan instans Elastic Compute Service (ECS) ke grup server backend CLB.

  • Mode jaringan Flannel: ecs

  • Mode jaringan Terway:

    • Untuk kluster Terway yang dibuat sebelum 10 Agustus 2020: ecs

    • Untuk kluster Terway yang dibuat pada atau setelah 10 Agustus 2020: eni

v1.9.3.164-g2105d2e-aliyun dan seterusnya

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/backend-type: "eni"
  name: nginx
spec:
  ports:
  - name: http
    port: 30080
    protocol: TCP
    targetPort: 80
  selector:
    app: nginx
  type: LoadBalancer

Gunakan kembali VServer Group yang sudah ada

Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vgroup-port

Gunakan kembali VServer Group yang sudah ada. Anotasi ini hanya berlaku saat Anda menggunakan kembali instans Classic Load Balancer (CLB) yang sudah ada. Untuk contoh penggunaan, lihat Sebarkan layanan lintas kluster dengan menggunakan kembali load balancer yang sudah ada.

Atur bobot trafik untuk Layanan

Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-weight

Saat beberapa Layanan menggunakan kembali instans Classic Load Balancer (CLB) yang sama, Anda dapat menggunakan anotasi ini untuk mengatur bobot trafik untuk Layanan saat ini. Anotasi ini hanya berlaku saat Anda menggunakan kembali VServer Group yang sudah ada. Untuk contoh penggunaan, lihat Sebarkan layanan lintas kluster dengan menggunakan kembali load balancer yang sudah ada.

Abaikan pembaruan bobot server backend

Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ignore-weight-update

Deskripsi

Versi CCM yang didukung

Menentukan apakah akan melewati pembaruan bobot server backend di VServer Group selama rekonsiliasi Layanan. Ini berguna saat bobot server backend dikelola oleh mekanisme lain. Nilai yang valid:

  • on

  • off

Nilai default: off

v2.11.1 dan seterusnya

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ignore-weight-update: "on"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 443
    protocol: TCP
    targetPort: 443
  selector:
    run: nginx
  type: LoadBalancer

Atur bobot default untuk server backend

Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-default-weight

Deskripsi

Versi CCM yang didukung

Menetapkan bobot default untuk server di grup server backend. Server backend dengan bobot lebih tinggi menerima lebih banyak trafik.

Nilai harus berupa bilangan bulat dari 0 hingga 100. Jika anotasi ini dihilangkan, sistem menggunakan bobot default berdasarkan jenis jaringan.

Pengaturan ini tidak berlaku saat instans backend adalah instans Elastic Compute Service (ECS) dan externalTrafficPolicy Layanan diatur ke Local.

v2.14.0 dan seterusnya

apiVersion: v1
kind: Service
metadata:
  annotations:
    # Menetapkan bobot default untuk server di grup server backend menjadi 35.
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-default-weight: "35"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 443
    protocol: TCP
    targetPort: 443
  selector:
    run: nginx
  type: LoadBalancer