All Products
Search
Document Center

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

Last Updated:Aug 21, 2026

Untuk mengaktifkan fitur load balancing yang lengkap, konfigurasikan instans CLB, pendengar, dan kelompok server backend dengan menambahkan anotasi ke file YAML Service Anda.

Indeks

Kategori

Kategori fitur

Tautan konfigurasi

Catatan penggunaan anotasi

Operasi CLB umum

Create load balancer

Specify existing instance

Configure load balancer

Enable instance protection

Operasi pendengar umum

Session persistence settings

Port and protocol configuration

Advanced Configuration

Operasi kelompok server backend umum

Configuration Management

Referensi

Catatan penggunaan anotasi

  • Nilai anotasi bersifat case-sensitive.

  • Sebelum menggunakan anotasi, periksa versi komponen CCM yang didukung untuk setiap fitur dalam dokumen ini. Untuk meningkatkan komponen CCM, lihat Components. Untuk catatan perubahan komponen CCM, lihat Cloud Controller Manager.

  • Mulai 11 September 2019, awalan untuk bidang annotations berubah dari alicloud menjadi alibaba-cloud.

    Contoh:

    Sebelum pembaruan: service.beta.kubernetes.io/alicloud-loadbalancer-id

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

    Sistem tetap kompatibel dengan awalan alicloud. Tidak diperlukan perubahan.

Operasi CLB umum

Buat instans SLB publik

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

Buat instans SLB internal

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

Deskripsi

Versi CCM yang didukung

Tentukan instans SLB sebagai internal-facing. Nilai yang valid:

  • internet: Layanan dapat diakses melalui jaringan publik. IP Version CLB yang sesuai harus Internet-facing.

  • intranet: Layanan dapat diakses melalui jaringan pribadi. IP Version CLB yang sesuai harus Internal-facing.

Nilai default: internet

Lihat Tentukan vSwitch untuk instans SLB untuk menentukan vSwitch secara manual untuk CLB. Jika tidak ditentukan, sistem akan memilihnya secara otomatis berdasarkan versi CCM:

  • Versi sebelum v2.13.0: Gunakan vSwitch pertama yang dikonfigurasi untuk lapisan kontrol kluster secara default.

  • Versi v2.13.0 dan lebih baru: Pilih secara otomatis dari semua vSwitch yang tersedia.

v1.9.3 dan lebih baru

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

Tentukan spesifikasi instans SLB

Anotasi: Multiple, seperti tercantum dalam tabel berikut.

Anotasi

Deskripsi

Versi CCM yang didukung

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

Metode penagihan untuk instans. Nilai yang valid:

  • PayBySpec: Ditagih berdasarkan spesifikasi.

  • PayByCLCU: Ditagih berdasarkan penggunaan.

Nilai default: PayBySpec

Penting
  • Untuk Cloud Controller Manager v2.5.0 dan lebih baru, nilai default berubah menjadi PayByCLCU.

  • Instans SLB berbasis penggunaan tidak mendukung pengaturan spesifikasi. Oleh karena itu, Anda tidak dapat menentukan PayByCLCU dan service.beta.kubernetes.io/alibaba-cloud-loadbalancer-spec secara bersamaan.

v2.4.0 dan lebih baru

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

Spesifikasi instans SLB. Gunakan parameter ini untuk membuat instans SLB dengan spesifikasi tertentu atau memperbarui spesifikasi instans SLB 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 nilai valid lainnya, lihat CreateLoadBalancer.

Penting

Jika Anda memodifikasi spesifikasi SLB di konsol CLB (hanya didukung untuk instans SLB berbasis spesifikasi), CCM mungkin mengembalikannya ke spesifikasi asli. Lakukan dengan hati-hati.

v1.9.3 dan lebih baru

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 instans SLB yang sudah ada

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

Deskripsi

Versi CCM yang didukung

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

  • Jangan menambahkan atau memodifikasi anotasi penggunaan ulang untuk Service LoadBalancer yang sudah ada. Melakukannya dapat menyebabkan kegagalan penggunaan ulang atau mencegah pelepasan load balancer yang dibuat oleh CCM.

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

  • Secara default, menggunakan kembali instans SLB yang sudah ada tidak mengganti pendengar. Untuk memaksa mengganti pendengar yang ada, atur service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners ke "true". Pengaturan ini hanya memengaruhi pendengar yang terkait dengan Service saat ini dan tidak memengaruhi pendengar lainnya.

    Catatan

    Menggunakan kembali SLB yang sudah ada tidak mengganti pendengar yang ada secara default karena dua alasan:

    • Jika trafik bisnis terikat pada pendengar yang ada, penggantian paksa dapat menyebabkan gangguan layanan.

    • CCM saat ini mendukung konfigurasi backend terbatas dan tidak dapat menangani pengaturan kompleks. Untuk kebutuhan backend kompleks, konfigurasikan pendengar secara manual di konsol tanpa mengganti.

    Mempertimbangkan skenario ini, kami tidak merekomendasikan penggantian paksa pendengar. Hanya ganti jika port pendengar pada SLB yang ada tidak lagi digunakan.

  • (Versi sebelum v2.10.0) Menggunakan kembali SLB yang sudah ada tidak mendukung penambahan tag tambahan (annotation: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-additional-resource-tags).

v1.9.3.81-gca19cd4-aliyun dan lebih baru

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 instans SLB yang sudah ada dan paksa mengganti pendengar yang ada

Anotasi: Multiple, seperti tercantum dalam tabel berikut. Memaksa mengganti pendengar yang ada akan menghapus pendengar yang bertentangan.

Anotasi

Deskripsi

Versi CCM yang didukung

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

Penting

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

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

  • Secara default, menggunakan kembali instans SLB yang sudah ada tidak mengganti pendengar. Untuk memaksa mengganti pendengar yang ada, atur service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners ke "true". Pengaturan ini hanya memengaruhi pendengar yang terkait dengan Service saat ini dan tidak memengaruhi pendengar lainnya.

    Catatan

    Menggunakan kembali SLB yang sudah ada tidak mengganti pendengar yang ada secara default karena dua alasan:

    • Jika trafik bisnis terikat pada pendengar yang ada, penggantian paksa dapat menyebabkan gangguan layanan.

    • CCM saat ini mendukung konfigurasi backend terbatas dan tidak dapat menangani pengaturan kompleks. Untuk kebutuhan backend kompleks, konfigurasikan pendengar secara manual di konsol tanpa mengganti.

    Mempertimbangkan skenario ini, kami tidak merekomendasikan penggantian paksa pendengar. Hanya ganti jika port pendengar pada SLB yang ada tidak lagi digunakan.

  • (Versi sebelum v2.10.0) Menggunakan kembali SLB yang sudah ada tidak mendukung penambahan tag tambahan (annotation: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-additional-resource-tags).

v1.9.3.81-gca19cd4-aliyun dan lebih baru

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

Saat mengikat ke SLB yang sudah ada, tentukan apakah akan menyinkronkan konfigurasi pendengar CLB berdasarkan Service.

  • "true": CCM mengelola pendengar CLB secara otomatis (buat, perbarui, hapus) yang terkait dengan Service tanpa memengaruhi pendengar lainnya.

  • "false": CCM tidak memproses pendengar CLB.

Nilai default: "false"

Penting

Saat menggunakan kembali CLB yang sudah ada dan mengatur force-override ke "true", jangan biarkan beberapa Service menggunakan kembali pendengar yang sama pada CLB yang sama. Hal ini menyebabkan konflik konfigurasi pendengar.

v1.9.3.81-gca19cd4-aliyun dan lebih baru

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 primer dan sekunder saat membuat instans SLB

Anotasi: Multiple, seperti tercantum dalam tabel berikut. Zona primer dan sekunder tidak dapat dimodifikasi setelah pembuatan.

Instans SLB di beberapa wilayah tidak mendukung zona primer dan sekunder. Lihat halaman pembuatan CLB untuk detailnya.

Anotasi

Deskripsi

Versi CCM yang didukung

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

ID zona server backend primer.

v1.9.3.10-gfb99107-aliyun dan lebih baru

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

ID zona server backend cadangan.

v1.9.3.10-gfb99107-aliyun dan lebih baru

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 instans SLB berbasis bandwidth

Anotasi: Multiple, seperti tercantum dalam tabel berikut. Kedua anotasi wajib digunakan.

Anotasi

Deskripsi

Versi CCM yang didukung

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

Metode penagihan untuk instans SLB. Nilai yang valid:

  • paybytraffic

  • paybybandwidth

Nilai default: paybytraffic

v1.9.3 dan lebih baru

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

Bandwidth instans SLB, mewakili bandwidth puncak. Nilai default: 50. Hanya berlaku untuk instans SLB publik. Untuk batasan lainnya, lihat Ubah metode penagihan untuk instans SLB publik.

v1.9.3.10-gfb99107-aliyun dan lebih baru

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 instans SLB

Anotasi: Multiple, seperti tercantum dalam tabel berikut. Kedua anotasi wajib digunakan.

Anotasi

Deskripsi

Versi CCM yang didukung

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

Tentukan instans SLB sebagai internal-facing. Nilai yang valid:

  • internet: Layanan dapat diakses melalui jaringan publik. IP Version CLB yang sesuai harus Internet-facing.

  • intranet: Layanan dapat diakses melalui jaringan pribadi. IP Version CLB yang sesuai harus Internal-facing.

Nilai default: internet

v1.9.3 dan lebih baru

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

ID vSwitch instans SLB. vSwitch harus berada dalam VPC yang sama dengan kluster Kubernetes.

Saat mengatur parameter ini, atur juga service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type ke "intranet".

Login ke konsol Virtual Private Cloud untuk mencari ID vSwitch.

v1.9.3 dan lebih baru

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 SLB internal

Anotasi: Multiple, seperti tercantum dalam tabel berikut. Ketiga anotasi wajib digunakan.

Anotasi

Deskripsi

Versi CCM yang didukung

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

Tentukan instans SLB sebagai internal-facing. Nilai yang valid:

  • internet: Layanan dapat diakses melalui jaringan publik. Ini adalah nilai default. IP Version CLB yang sesuai harus Internet-facing.

  • intranet: Layanan dapat diakses melalui jaringan pribadi. IP Version CLB yang sesuai harus Internal-facing.

Nilai default: internet

v1.9.3 dan lebih baru

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

ID vSwitch instans SLB. vSwitch harus berada dalam VPC yang sama dengan kluster Kubernetes.

Saat mengatur parameter ini, atur juga service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type ke intranet.

Login ke konsol Virtual Private Cloud untuk mencari ID vSwitch.

v1.9.3 dan lebih baru

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

Alamat IP instans SLB internal.

  • Alamat IP harus berada dalam Blok CIDR tujuan vSwitch. Hanya alamat IPv4 yang didukung, dan parameter ini harus digunakan bersama dengan service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vswitch-id.

  • Alamat IP tidak dapat diubah setelah pembuatan.

v2.7.0 dan lebih baru

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 instans SLB

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

Deskripsi

Versi CCM yang didukung

Daftar tag yang akan ditambahkan. Pisahkan beberapa tag dengan koma Inggris (,). Contoh: "k1=v1,k2=v2". Versi v2.10.0 dan lebih baru mendukung modifikasi tag untuk instans yang baru dibuat maupun yang digunakan kembali.

Penting

Setelah menambahkan anotasi ini untuk menentukan tag tambahan, modifikasi tag manual yang dilakukan pada instans SLB yang sesuai di konsol mungkin ditimpa.

v1.9.3 dan lebih baru

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 instans SLB IPv6

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

Deskripsi

Versi CCM yang didukung

Versi IP instans SLB. Jenis IP tidak dapat diubah setelah pembuatan. Saat menggunakan fitur ini, pastikan mode proxy kube-proxy kluster Anda adalah IPVS. Nilai yang valid:

  • ipv4: Jenis IPv4.

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

Nilai default: ipv4

v1.9.3.220-g24b1885-aliyun dan lebih baru

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 instans SLB

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

Deskripsi

Versi CCM yang didukung

Perlindungan penghapusan untuk instans SLB. Nilai yang valid:

  • on

  • off

Nilai default: on

Penting

Untuk instans SLB yang dibuat oleh Service tipe LoadBalancer, meskipun Anda mengaktifkan perlindungan penghapusan secara manual di konsol CLB, Anda tetap dapat menghapus instans SLB terkait dengan menjalankan kubectl delete svc {your-svc-name}.

v1.9.3.313-g748f81e-aliyun dan lebih baru

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 mode baca-saja konfigurasi untuk instans SLB

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

Deskripsi

Versi CCM yang didukung

Perlindungan modifikasi konfigurasi untuk instans SLB. Nilai yang valid:

  • ConsoleProtection

  • NonProtection

Nilai default: ConsoleProtection

v1.9.3.313-g748f81e-aliyun dan lebih baru

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 instans SLB

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

Deskripsi

Versi CCM yang didukung

Nama instans SLB. Nama harus terdiri dari 2–128 karakter, dimulai dengan huruf atau karakter Tionghoa, dan dapat berisi angka, titik (.), garis bawah (_), dan tanda hubung (-).

v1.9.3.313-g748f81e-aliyun dan lebih baru

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 instans SLB

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

Deskripsi

Versi CCM yang didukung

ID kelompok sumber daya instans SLB. Setelah ditentukan, ID kelompok sumber daya tidak dapat dimodifikasi. Cari ID kelompok sumber daya di konsol Alibaba Cloud Resource Management.

v1.9.3.313-g748f81e-aliyun dan lebih baru

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 Service

Anotasi: Multiple, seperti tercantum dalam tabel berikut.

Anotasi

Deskripsi

Versi CCM yang didukung

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

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

v1.9.3 dan lebih baru

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

Atur hostname untuk Service. Hostname harus mematuhi aturan penamaan DNS.

Perhatikan hal berikut:

  • Setelah menambahkan anotasi ini, EXTERNAL-IP Service berubah dari IP CLB default menjadi your_service_name. Trafik yang mengakses IP CLB dalam kluster akan melewati CLB sebelum diteruskan ke kluster.

  • Setelah menambahkan anotasi ini, mengakses IP CLB dari dalam kluster untuk pendengar TCP atau UDP menyebabkan masalah loopback. Untuk detailnya, lihat Client cannot access CLB.

  • Anotasi ini tidak secara otomatis mengikat CLB ke nama domain. Untuk mengikat, beli nama domain dan konfigurasikan secara manual di konsol Domain Names. Untuk membeli nama domain, lihat Apa itu Alibaba Cloud Domain Names?.

v2.3.0 dan lebih baru

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 instans SLB berbasis penggunaan

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

Deskripsi

Versi CCM yang didukung

Metode penagihan untuk instans. Nilai yang valid:

  • PayBySpec: Nilai default, ditagih berdasarkan spesifikasi.

  • PayByCLCU: Ditagih berdasarkan penggunaan.

Nilai default: PayBySpec

Penting
  • Untuk Cloud Controller Manager v2.5.0 dan lebih baru, nilai default berubah menjadi PayByCLCU.

  • Instans SLB berbasis penggunaan tidak mendukung pengaturan spesifikasi. Oleh karena itu, Anda tidak dapat menentukan PayByCLCU dan service.beta.kubernetes.io/alibaba-cloud-loadbalancer-spec secara bersamaan.

v2.4.0 dan lebih baru

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 pendengar umum

Konfigurasi timeout persistensi sesi untuk SLB TCP

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

Deskripsi

Versi CCM yang didukung

Timeout persistensi sesi. Hanya berlaku untuk pendengar TCP. Jika instans SLB memiliki beberapa pendengar TCP, pengaturan ini berlaku untuk semua pendengar TCP secara default.

Unit: detik. Rentang valid: [0, 3600]. Nilai default: 0 (persistensi sesi dinonaktifkan). Untuk informasi lebih lanjut, lihat CreateLoadBalancerTCPListener.

v1.9.3 dan lebih baru

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 persistensi sesi (insert cookie) untuk pendengar HTTP dan HTTPS

Anotasi: Multiple, seperti tercantum dalam tabel berikut. Keempat anotasi wajib digunakan saat memasukkan cookie.

  • Hanya berlaku untuk instans SLB HTTP dan HTTPS.

  • Jika beberapa pendengar HTTP atau HTTPS dikonfigurasi, persistensi sesi berlaku untuk semua pendengar HTTP dan HTTPS secara default.

Anotasi

Deskripsi

Versi CCM yang didukung

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

Aktifkan persistensi sesi. Hanya berlaku untuk pendengar HTTP dan HTTPS. Nilai yang valid:

  • on

  • off

Nilai default: off

Untuk informasi lebih lanjut, lihat CreateLoadBalancerHTTPListener dan CreateLoadBalancerHTTPSListener.

v1.9.3 dan lebih baru

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

Metode penanganan cookie. Hanya berlaku untuk pendengar HTTP dan HTTPS. Wajib saat service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-session diatur ke on. Nilai yang valid:

  • insert: Masukkan cookie.

  • server: Tulis ulang cookie.

Untuk informasi lebih lanjut, lihat CreateLoadBalancerHTTPListener dan CreateLoadBalancerHTTPSListener.

v1.9.3 dan lebih baru

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

Timeout cookie. Wajib saat service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-session adalah on dan service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-session-type adalah insert. Unit: detik. Rentang valid: [1, 86400].

Untuk informasi lebih lanjut, lihat CreateLoadBalancerHTTPListener dan CreateLoadBalancerHTTPSListener.

v1.9.3 dan lebih baru

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

Nama cookie yang dikonfigurasi di server.

Panjang: 1–200 karakter. Hanya dapat berisi huruf ASCII dan angka. Tidak boleh berisi koma (,), titik koma (;), spasi, atau dimulai dengan tanda dolar ($).

Wajib saat service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-session adalah on dan service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-session-type adalah server.

Untuk informasi lebih lanjut, lihat CreateLoadBalancerHTTPListener dan CreateLoadBalancerHTTPSListener.

v1.9.3 dan lebih baru

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

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

v1.9.3 dan lebih baru

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 kelompok kebijakan kontrol akses untuk SLB

Anotasi: Multiple, seperti tercantum dalam tabel berikut. Ketiga anotasi wajib digunakan.

Sebelum menggunakan anotasi ini untuk membuat SLB dengan kontrol akses, buat kelompok kebijakan kontrol akses di konsol Classic Load Balancer CLB dan catat ID-nya (acl-id).

Anotasi

Deskripsi

Versi CCM yang didukung

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

Aktifkan kontrol akses. Nilai yang valid:

  • on

  • off

Nilai default: off

v1.9.3.164-g2105d2e-aliyun dan lebih baru

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

ID kelompok kebijakan kontrol akses yang diikat ke pendengar. Wajib saat service.beta.kubernetes.io/alibaba-cloud-loadbalancer-acl-status diatur ke "on".

v1.9.3.164-g2105d2e-aliyun dan lebih baru

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

Jenis kontrol akses. Nilai yang valid:

  • white: Teruskan permintaan hanya dari alamat IP atau Blok CIDR dalam kelompok kebijakan kontrol akses. Whitelisting berlaku saat aplikasi Anda hanya mengizinkan akses dari IP tertentu. Menyetel daftar putih membawa risiko bisnis. Setelah dikonfigurasi, hanya IP dalam daftar putih yang dapat mengakses pendengar SLB. Jika daftar putih kosong, pendengar SLB meneruskan semua permintaan.

  • black: Permintaan dari alamat IP atau Blok CIDR yang dikonfigurasi dalam kelompok kebijakan kontrol akses yang dipilih tidak akan diteruskan. Anda dapat menggunakan daftar hitam dalam skenario di mana Anda ingin menolak akses hanya dari alamat IP tertentu ke aplikasi. Jika Anda mengaktifkan daftar hitam tetapi tidak menambahkan alamat IP ke kelompok kebijakan kontrol akses, pendengar SLB meneruskan semua permintaan. Parameter ini wajib saat parameter AclStatus diatur ke on.

v1.9.3.164-g2105d2e-aliyun dan lebih baru

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}" # Tidak mendukung beberapa kelompok kebijakan.
    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

Tentukan port pengalihan untuk SLB

Pengalihan port mengarahkan permintaan HTTP ke port HTTPS.

Anotasi: Multiple, seperti tercantum dalam tabel berikut. Ketiga anotasi wajib digunakan.

Anotasi

Deskripsi

Versi CCM yang didukung

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

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

v1.9.3 dan lebih baru

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

ID sertifikat di Alibaba Cloud.

Login ke konsol CLB dan lihat ID sertifikat di halaman Certificates.

Catatan

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

v1.9.3.164-g2105d2e-aliyun dan lebih baru

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

Arahkan permintaan HTTP ke port HTTPS tertentu. Contoh: 80:443.

v1.9.3.164-g2105d2e-aliyun dan lebih baru

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

Atur algoritma penjadwalan untuk SLB

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

Deskripsi

Versi CCM yang didukung

Algoritma penjadwalan. Nilai yang valid:

  • wrr: Round-robin berbobot. Server backend dengan bobot lebih tinggi menerima lebih banyak permintaan (probabilitas lebih tinggi).

  • rr: Round-robin. Mendistribusikan permintaan eksternal secara berurutan ke server backend.

  • sch: Hash konsisten berdasarkan alamat IP sumber. Permintaan dari alamat sumber yang sama dijadwalkan ke server backend yang sama.

  • tch: Hash konsisten berdasarkan kuadrupel (alamat IP sumber + alamat IP tujuan + port sumber + port tujuan). Permintaan dari aliran yang sama dijadwalkan ke server backend yang sama.

Nilai default: rr.

Untuk nilai valid lainnya, lihat bidang Scheduler dalam API pembuatan pendengar yang sesuai (seperti Buat pendengar TCP).

v1.9.3 dan lebih baru

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 pendengar UDP

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

Buat pendengar HTTP

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

  • Pemeriksaan kesehatan: Pemeriksaan kesehatan pendengar HTTP dinonaktifkan secara default. Untuk memastikan ketersediaan layanan backend, konfigurasikan pemeriksaan kesehatan HTTP atau TCP untuk port pendengar.

  • Akses dalam kluster: Saat mengakses layanan melalui IP CLB dari dalam kluster, trafik permintaan mungkin terpotong secara internal, menyebabkan masalah akses. Lihat Atur hostname untuk Service untuk memaksa trafik melewati CLB dengan menambahkan anotasi. Untuk detailnya, lihat Catatan tentang mengakses External IP Service LoadBalancer dari dalam kluster.

Deskripsi

Versi CCM yang didukung

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

v1.9.3 dan lebih baru

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 pendengar HTTPS

Anotasi: Multiple, seperti tercantum dalam tabel berikut.

Permintaan HTTPS didekripsi di lapisan CLB dan dikirim ke pod backend sebagai permintaan HTTP.

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

  • Akses dalam kluster: Saat mengakses layanan melalui IP CLB dari dalam kluster, trafik permintaan mungkin terpotong secara internal, menyebabkan masalah akses. Lihat Atur hostname untuk Service untuk memaksa trafik melewati CLB dengan menambahkan anotasi. Untuk detailnya, lihat Catatan tentang mengakses External IP Service LoadBalancer dari dalam kluster.

Anotasi

Deskripsi

Versi CCM yang didukung

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

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

v1.9.3 dan lebih baru

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

ID sertifikat di Alibaba Cloud.

Login ke konsol CLB dan lihat ID sertifikat di halaman Certificates.

Catatan

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

v1.9.3.164-g2105d2e-aliyun dan lebih baru

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

Error protokol SSL saat mengakses CLB dari dalam kluster

Gejala

Setelah Anda Buat pendengar HTTPS untuk layanan, layanan berfungsi dengan benar saat diakses dari luar kluster. Namun, saat Anda menggunakan curl untuk mengakses port HTTPS CLB yang terkait dengan layanan dari node atau pod di dalam kluster, error berikut dikembalikan:

curl: (35) error:1408F10B:SSL routines:ssl3_get_record:wrong version number

Penyebab

Masalah ini terjadi karena aturan IP Virtual Server (IPVS) pada node:

  1. Konfigurasi Service: Pendengar HTTPS pada CLB hanya mendukung protokol HTTP untuk layanan backend. Oleh karena itu, layanan harus dikonfigurasi untuk meneruskan trafik dari port: 443 ke targetPort: 80. ACK kemudian membuat aturan IPVS pada node. Aturan ini langsung meneruskan trafik dari port 443 ke port backend 80.

  2. Penerusan Lapisan 4: IPVS beroperasi pada Lapisan 4 stack protokol TCP/IP. IPVS hanya meneruskan paket data TCP dan tidak mengurai protokol lapisan aplikasi seperti TLS atau HTTPS.

  3. Ketidakcocokan protokol: Klien (curl) mengirim permintaan HTTPS yang berisi data jabat tangan TLS. IPVS langsung meneruskan permintaan ini ke port HTTP 80 layanan backend. Karena port ini tidak dikonfigurasi untuk TLS, port ini tidak dapat mengurai permintaan TLS. Akibatnya, layanan backend mengembalikan error HTTP 400, dan klien melaporkan error protokol SSL.

Solusi

Tambahkan anotasi service.beta.kubernetes.io/alibaba-cloud-loadbalancer-hostname ke layanan. Anotasi ini mencegah aturan IPVS dibuat pada node dan memaksa trafik dalam kluster melewati CLB. Hal ini memastikan CLB menangani jabat tangan TLS dengan benar. Untuk informasi lebih lanjut, lihat .

Konfigurasi sertifikat nama domain tambahan untuk pendengar HTTPS

Anotasi: Multiple, seperti tercantum dalam tabel berikut.

Anotasi

Deskripsi

Versi CCM yang didukung

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

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

v1.9.3 dan lebih baru

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

ID sertifikat di Alibaba Cloud.

Login ke konsol CLB dan lihat ID sertifikat di halaman Certificates.

Catatan

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

v1.9.3.164-g2105d2e-aliyun dan lebih baru

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

Tentukan nama domain tambahan dan ID sertifikat dalam format {domain}:{certificate ID}. Pisahkan beberapa nilai dengan koma Inggris (,).

Login ke konsol CLB dan lihat ID sertifikat di halaman Certificates.

v2.13.0 dan lebih baru

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

Buat pendengar dengan pemeriksaan kesehatan

Atur pemeriksaan kesehatan TCP

Anotasi: Multiple, seperti tercantum dalam tabel berikut. Semua anotasi wajib digunakan.

Port TCP memiliki pemeriksaan kesehatan yang diaktifkan secara default.

Anotasi

Deskripsi

Versi CCM yang didukung

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

Aktifkan pemeriksaan kesehatan untuk pendengar TCP dan UDP. Nilai yang valid:

  • on

  • off

Nilai default: on

v2.6.0 dan lebih baru

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

Jenis pemeriksaan kesehatan. Nilai yang valid:

  • tcp

  • http

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

v1.9.3 dan lebih baru

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

Waktu tunggu respons dari pemeriksaan kesehatan, berlaku untuk mode TCP. Jika ECS backend tidak merespons dengan benar dalam waktu yang ditentukan, pemeriksaan kesehatan gagal. Unit: detik. Rentang valid: [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, yang pertama tidak valid, dan timeout sama dengan nilai yang kedua. Nilai default: 5. Untuk informasi lebih lanjut, lihat CreateLoadBalancerTCPListener.

v1.9.3 dan lebih baru

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

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

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

v1.9.3 dan lebih baru

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

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

v1.9.3 dan lebih baru

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

Interval pemeriksaan kesehatan. Unit: detik. Rentang valid: [1, 50]. Nilai default: 2. Untuk informasi lebih lanjut, lihat CreateLoadBalancerTCPListener.

v1.9.3 dan lebih baru

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

Atur pemeriksaan kesehatan UDP

Anotasi: Multiple, seperti tercantum dalam tabel berikut. Semua anotasi wajib digunakan.

Port UDP memiliki pemeriksaan kesehatan yang diaktifkan secara default.

Anotasi

Deskripsi

Versi CCM yang didukung

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

Aktifkan pemeriksaan kesehatan untuk pendengar TCP dan UDP. Nilai yang valid:

  • on

  • off

Nilai default: on

v2.6.0 dan lebih baru

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

Waktu tunggu respons dari pemeriksaan kesehatan, berlaku untuk mode TCP. Jika ECS backend tidak merespons dengan benar dalam waktu yang ditentukan, pemeriksaan kesehatan gagal. Unit: detik. Rentang valid: [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, yang pertama tidak valid, dan timeout sama dengan nilai yang kedua. Nilai default: 5. Untuk informasi lebih lanjut, lihat CreateLoadBalancerUDPListener.

v1.9.3 dan lebih baru

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

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

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

v1.9.3 dan lebih baru

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

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

v1.9.3 dan lebih baru

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

Interval pemeriksaan kesehatan. Unit: detik. Rentang valid: [1, 50]. Nilai default: 2. Untuk informasi lebih lanjut, lihat CreateLoadBalancerUDPListener.

v1.9.3 dan lebih baru

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 untuk pendengar TCP dan UDP

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

Deskripsi

Versi CCM yang didukung

Aktifkan pemeriksaan kesehatan untuk pendengar TCP dan UDP. Nilai yang valid:

  • on

  • off

Nilai default: on

v2.6.0 dan lebih baru

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

Atur pemeriksaan kesehatan HTTP

Anotasi: Multiple, seperti tercantum dalam tabel berikut.

Anotasi

Deskripsi

Versi CCM yang didukung

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

Nilai yang valid:

  • on: Pendengar TCP default ke on dan tidak dapat diubah. Tidak perlu memodifikasi anotasi ini untuk TCP.

  • off: Pendengar HTTP default ke off.

Nilai default: off

v1.9.3 dan lebih baru

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

Jenis pemeriksaan kesehatan. Nilai yang valid:

  • tcp

  • http

Nilai default: tcp

Untuk informasi lebih lanjut, lihat CreateLoadBalancerHTTPListener.

v1.9.3 dan lebih baru

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

URI untuk pemeriksaan kesehatan. Tidak diperlukan saat jenis pemeriksaan kesehatan adalah TCP.

v1.9.3 dan lebih baru

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

Kode status HTTP yang menunjukkan pemeriksaan sehat. Pisahkan beberapa kode status dengan koma Inggris. 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 lebih baru

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

Nama domain untuk pemeriksaan kesehatan. Nilai yang valid:

  • $_ip: IP privat server backend. Jika IP ditentukan atau parameter ini tidak disetel, SLB menggunakan IP privat masing-masing server backend sebagai domain pemeriksaan kesehatan.

  • domain: Panjang nama domain: 1–80 karakter. Hanya dapat berisi huruf, angka, titik (.), dan tanda hubung (-).

Untuk informasi lebih lanjut, lihat CreateLoadBalancerHTTPListener.

v1.9.3 dan lebih baru

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

Waktu tunggu respons dari pemeriksaan kesehatan, berlaku untuk mode HTTP. Jika ECS backend tidak merespons dengan benar dalam waktu yang ditentukan, pemeriksaan kesehatan gagal.

Unit: detik. Rentang valid: [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, maka service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-timeout tidak valid, dan timeout sama dengan nilai service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval.

Untuk informasi lebih lanjut, lihat CreateLoadBalancerHTTPListener.

v1.9.3 dan lebih baru

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

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

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

v1.9.3 dan lebih baru

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

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

v1.9.3 dan lebih baru

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

Interval pemeriksaan kesehatan. Unit: detik. Rentang valid: [1, 50]. Nilai default: 2. Untuk informasi lebih lanjut, lihat CreateLoadBalancerHTTPListener.

v1.9.3 dan lebih baru

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

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

v1.9.3 dan lebih baru

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

Metode pemeriksaan kesehatan untuk pendengar HTTP. Nilai yang valid:

  • head

  • get

v2.3.0 dan lebih baru

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"
    # Atur kode status HTTP untuk pemeriksaan kesehatan (opsional)
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-httpcode: "http_4xx"
    # Atur domain untuk pemeriksaan kesehatan (opsional)
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-domain: "www.aliyun.com"
    # Atur metode pemeriksaan kesehatan (opsional)
    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

Atur pengurasan koneksi untuk pendengar

Anotasi: Multiple, seperti tercantum dalam tabel berikut. Semua anotasi wajib digunakan.

Hanya berlaku untuk protokol TCP dan UDP.

Anotasi

Deskripsi

Versi CCM yang didukung

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

Aktifkan pengurasan koneksi. Nilai yang valid:

  • on

  • off

v2.0.1 dan lebih baru

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

Atur timeout pengurasan koneksi. Unit: detik. Rentang valid: [10, 900].

v2.0.1 dan lebih baru

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 tambahan untuk pendengar

Anotasi: Multiple, seperti tercantum dalam tabel berikut.

Hanya berlaku untuk protokol HTTP dan HTTPS.

Anotasi

Deskripsi

Versi CCM yang didukung

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

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

v1.9.3 dan lebih baru

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

Konfigurasi apakah akan mendapatkan protokol pendengar CLB melalui header X-Forwarded-Proto. Nilai yang valid:

  • on

  • off

Nilai default: off

v2.1.0 dan lebih baru

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

Konfigurasi apakah akan mendapatkan port pendengar instans SLB melalui header XForwardedFor_SLBPORT. Nilai yang valid:

  • on

  • off

Nilai default: off

v2.9.1 dan lebih baru

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

Konfigurasi apakah akan mendapatkan port klien yang mengakses instans SLB melalui header XForwardedFor_ClientSrcPort. Nilai yang valid:

  • on

  • off

Nilai default: off

v2.9.1 dan lebih baru

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

Atur timeout koneksi idle untuk pendengar

Anotasi: Multiple, seperti tercantum dalam tabel berikut.

Hanya berlaku untuk protokol HTTP dan HTTPS.

Anotasi

Deskripsi

Versi CCM yang didukung

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

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

v1.9.3 dan lebih baru

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

Atur timeout koneksi idle untuk pendengar. Unit: detik. Rentang valid: [1, 60].

Nilai default: 15

v2.1.0 dan lebih baru

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 pendengar

Anotasi: Multiple, seperti tercantum dalam tabel berikut.

Hanya berlaku untuk protokol HTTPS.

Anotasi

Deskripsi

Versi CCM yang didukung

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

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

v1.9.3 dan lebih baru

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

ID sertifikat di Alibaba Cloud.

Login ke konsol CLB dan lihat ID sertifikat di halaman Certificates.

Catatan

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

v1.9.3.164-g2105d2e-aliyun dan lebih baru

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

Aktifkan HTTP/2. Nilai yang valid:

  • on

  • off

Nilai default: on

v2.1.0 dan lebih baru

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 untuk pendengar

Anotasi: Multiple, seperti tercantum dalam tabel berikut.

Hanya berlaku untuk protokol HTTP dan HTTPS.

Anotasi

Deskripsi

Versi CCM yang didukung

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

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

v1.9.3 dan lebih baru

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

Atur timeout permintaan. Unit: detik. Rentang valid: [1, 180]. Nilai default: 60

Jika server backend tidak merespons dalam periode timeout, SLB berhenti menunggu dan mengembalikan error HTTP 504 ke klien.

v2.3.0 dan lebih baru

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 timeout koneksi untuk pendengar

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

Hanya berlaku untuk protokol TCP.

Deskripsi

Versi CCM yang didukung

Timeout koneksi. Unit: detik. Rentang valid: [10, 900]. Untuk informasi lebih lanjut, lihat CreateLoadBalancerTCPListener.

v2.3.0 dan lebih baru

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

Mengonfigurasi kebijakan keamanan untuk Pendengar

Anotasi: Multiple, seperti tercantum dalam tabel berikut.

Hanya berlaku untuk protokol HTTPS.

Anotasi

Deskripsi

Versi CCM yang didukung

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

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

v1.9.3 dan lebih baru

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

ID sertifikat di Alibaba Cloud.

Login ke konsol CLB dan lihat ID sertifikat di halaman Certificates.

Catatan

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

v1.9.3.164-g2105d2e-aliyun dan lebih baru

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

Kebijakan keamanan mencakup versi TLS opsional dan paket sandi enkripsi untuk 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 lebih baru

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

Mengonfigurasi protokol TCP dan UDP untuk Pendengar

Catatan

Fitur ini memerlukan versi kluster Kubernetes v1.24 atau lebih baru. Untuk instruksi peningkatan, lihat Upgrade versi Kubernetes 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 untuk pendengar TCP dan UDP

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

Saat mengakses layanan melalui IP CLB dari dalam kluster, trafik permintaan mungkin terpotong secara internal, menyebabkan masalah akses. Lihat Atur hostname untuk Service untuk memaksa trafik melewati CLB dengan menambahkan anotasi. Untuk detailnya, lihat Catatan tentang mengakses External IP Service LoadBalancer dari dalam kluster.

Deskripsi

Versi CCM yang didukung

Konfigurasi Proxy Protocol untuk pendengar TCP dan UDP. Saat diaktifkan, Proxy Protocol membawa alamat sumber klien ke server backend. Nilai yang valid:

  • on

  • off

Nilai default: off

Penting

Fitur ini tidak mendukung migrasi lancar. Mengganti Proxy Protocol memerlukan waktu henti layanan. Konfigurasikan dengan hati-hati.

v2.6.0 dan lebih baru

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 kelompok server backend umum

Gunakan node pekerja dengan label tertentu sebagai server backend

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

Deskripsi

Versi CCM yang didukung

Tentukan node pekerja untuk dipasang ke backend CLB menggunakan label. Pisahkan beberapa label dengan koma Inggris (,). Contoh: "k1=v1,k2=v2". Beberapa label menggunakan logika AND. Hanya berlaku saat jenis server backend adalah mode ecs.

v1.9.3 dan lebih baru

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 tempat pod berada sebagai server backend

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

externalTrafficPolicy default adalah mode Cluster, yang memasang semua node kluster ke backend. Mode Local hanya memasang node tempat pod berada.

Deskripsi

Versi CCM yang didukung

Algoritma penjadwalan. Nilai yang valid:

  • wrr: Round-robin berbobot. Server backend dengan bobot lebih tinggi menerima lebih banyak permintaan (probabilitas lebih tinggi).

    Mode Local memerlukan pengaturan kebijakan penjadwalan ke round-robin berbobot wrr.

    Catatan

    Dalam versi v1.9.3.164-g2105d2e-aliyun dan lebih baru, layanan dengan kebijakan trafik eksternal diatur ke mode Local secara otomatis mengatur bobot node berdasarkan jumlah pod di setiap node. Untuk aturan perhitungan bobot, lihat Bagaimana bobot node diatur secara otomatis dalam mode Local?.

  • rr: Round-robin. Mendistribusikan permintaan eksternal secara berurutan ke server backend.

Nilai default: rr

v1.9.3 dan lebih baru

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 node dalam status unschedulable dari backend CLB

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

Deskripsi

Versi CCM yang didukung

Hapus node SchedulingDisabled dari backend CLB. Nilai yang valid:

  • on: Hapus node dalam status unschedulable dari kelompok server backend CLB.

  • off: Perintah kubectl cordon dan kubectl drain mengatur node ke status unschedulable. Node dalam status unschedulable tetap berada dalam kelompok server backend CLB.

Nilai default: off

v1.9.3.164-g2105d2e-aliyun dan lebih baru

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

Pasang ENI pod langsung ke backend CLB

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

Deskripsi

Nilai default

Versi CCM yang didukung

Jenis server backend CLB. Nilai yang valid:

  • eni: Pasang pod langsung ke backend CLB untuk meningkatkan kinerja penerusan jaringan. Hanya berlaku dalam mode jaringan Terway.

    Anda juga dapat mengubah secara manual service.beta.kubernetes.io/backend-type: "eni" menjadi eni atau ecs untuk memasang instans ECS ke backend CLB.

  • ecs: Pasang instans ECS ke backend CLB.

  • Mode jaringan Flannel: ecs

  • Mode jaringan Terway:

    • Kluster Terway yang dibuat sebelum 10 Agustus 2020: ecs

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

v1.9.3.164-g2105d2e-aliyun dan lebih baru

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 kelompok vServer yang sudah ada

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

Mendukung penggunaan kembali kelompok vServer yang sudah ada. Hanya berlaku saat menggunakan kembali instans CLB yang sudah ada. Untuk contoh penggunaan, lihat Capai penerapan layanan lintas kluster dengan menggunakan kembali instans SLB yang sudah ada.

Atur bobot trafik untuk Service

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

Dalam skenario di mana beberapa Service menggunakan kembali CLB yang sama, gunakan anotasi ini untuk mengatur bobot trafik untuk Service saat ini. Anotasi ini hanya berlaku saat menggunakan kembali kelompok vServer yang sudah ada. Untuk contoh penggunaan, lihat Capai penerapan layanan lintas kluster dengan menggunakan kembali instans SLB yang sudah ada.

Abaikan pembaruan bobot server backend

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

Deskripsi

Versi CCM yang didukung

Lewati pembaruan bobot server backend dalam kelompok vServer selama sinkronisasi Service. Gunakan pengaturan ini saat mengelola bobot server backend secara manual di luar CCM. Nilai yang valid:

  • on

  • off

Nilai default: off

v2.11.1 dan lebih baru

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 server backend

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

Deskripsi

Versi CCM yang didukung

Atur bobot default untuk server dalam kelompok server. Bobot yang lebih tinggi menghasilkan lebih banyak trafik permintaan.

Rentang valid: [0, 100]. Jika tidak ditentukan, sistem menggunakan bobot default yang sesuai dengan jenis jaringan saat ini.

Pengaturan ini tidak berlaku saat instans backend adalah ECS dan externalTrafficPolicy Service adalah mode Local.

v2.14.0 dan lebih baru

apiVersion: v1
kind: Service
metadata:
  annotations:
    # Atur bobot server default dalam kelompok server 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