全部产品
Search
文档中心

Container Service for Kubernetes:Konfigurasi Classic Load Balancer menggunakan anotasi

更新时间:Dec 17, 2025

Anda dapat memanfaatkan berbagai fitur load balancing dengan menambahkan anotasi ke file YAML Service. Anotasi ini memungkinkan Anda mengonfigurasi instans Classic Load Balancer (CLB), listener, dan kelompok server backend.

Indeks

Kategori

Kategori fitur

Tautan konfigurasi

Catatan penggunaan anotasi

Operasi CLB khas

Create an SLB instance

Specify an existing instance

Configure an SLB instance

Enable instance protection

Operasi listener khas

Session persistence settings

Port and protocol configuration

Advanced configuration

Operasi kelompok server backend khas

Configuration management

Referensi

Catatan penggunaan anotasi

  • Anotasi bersifat case-sensitive.

  • Sebelum menggunakan anotasi, periksa versi Cloud Controller Manager (CCM) yang mendukung fitur tersebut. Untuk meningkatkan komponen CCM, lihat Manage components. Untuk informasi selengkapnya tentang riwayat perubahan komponen CCM, lihat Cloud Controller Manager.

  • Sejak 11 September 2019, alicloud dalam bidang annotations telah diperbarui 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 format alicloud. Anda tidak perlu melakukan perubahan apa pun.

Operasi CLB khas

Create an Internet-facing SLB instance

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

Create an internal-facing SLB instance

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

Deskripsi

Supported CCM versions

Menentukan tipe alamat instans SLB. Nilai yang valid:

  • internet: Service diakses melalui Internet. Address Type instans CLB harus Public.

  • intranet: Service diakses melalui jaringan pribadi. Address Type instans CLB harus Private.

Nilai default: internet

v1.9.3 dan yang 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

Specify the SLB instance specification

Annotation: Tersedia beberapa anotasi, sebagaimana dijelaskan dalam tabel berikut.

Anotasi

Deskripsi

Supported CCM versions

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

Metode penagihan instans. Nilai yang valid:

  • PayBySpec: bayar-per-spesifikasi.

  • PayByCLCU: bayar-per-LCU.

Nilai default: PayBySpec

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

  • Anda tidak dapat menentukan spesifikasi untuk instans SLB bayar-per-LCU. Nilai PayByCLCU tidak dapat digunakan bersamaan dengan anotasi service.beta.kubernetes.io/alibaba-cloud-loadbalancer-spec.

v2.4.0 dan yang lebih baru

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

Spesifikasi instans SLB. Anda dapat menggunakan parameter ini untuk membuat instans CLB dengan spesifikasi tertentu atau memperbarui spesifikasi instans CLB 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 selengkapnya tentang nilai yang valid untuk parameter ini, lihat CreateLoadBalancer.

Penting

Jika Anda mengubah spesifikasi instans CLB di konsol CLB, spesifikasi tersebut mungkin dikembalikan ke nilai semula oleh CCM. Hal ini hanya berlaku untuk instans CLB bayar-per-spesifikasi. Lakukan dengan hati-hati.

v1.9.3 dan yang 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

Use an existing SLB instance

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

Deskripsi

Supported CCM versions

Penting

Untuk mencegah 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 Classic Load Balancer (CLB) console.

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

  • Secara default, penggunaan instans SLB yang sudah ada tidak akan menimpa listener-nya. Untuk memaksa menimpa listener yang ada, atur service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners ke "true". Konfigurasi ini hanya akan menimpa listener dari Service saat ini dan tidak memengaruhi listener lainnya.

    Catatan

    Penggunaan kembali instans SLB yang sudah ada tidak menimpa listener yang ada secara default karena dua alasan berikut:

    • Jika layanan terikat pada listener instans SLB yang ada, penimpaan paksa dapat menyebabkan gangguan layanan.

    • CCM hanya mendukung konfigurasi backend terbatas dan tidak dapat memproses konfigurasi kompleks. Jika Anda memiliki persyaratan konfigurasi backend yang kompleks, Anda dapat mengonfigurasi listener di konsol tanpa menimpanya.

    Karena alasan tersebut, kami menyarankan agar Anda tidak memaksa menimpa listener. Anda dapat memaksa menimpa listener jika port listener instans SLB yang ada tidak lagi digunakan.

  • Untuk versi CCM sebelum v2.10.0, Anda tidak dapat menambahkan tag tambahan saat menggunakan instans SLB yang sudah ada (annotation: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-additional-resource-tags).

v1.9.3.81-gca19cd4-aliyun dan yang 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

Use an existing SLB instance and forcibly overwrite its existing listeners

Annotation: Tersedia beberapa anotasi, sebagaimana dijelaskan dalam tabel berikut. Anotasi-anotasi ini secara paksa menimpa listener yang ada. Jika terjadi konflik port listener, listener yang ada akan dihapus.

Anotasi

Deskripsi

Supported CCM versions

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

Penting

Untuk mencegah 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 Classic Load Balancer (CLB) console.

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

  • Secara default, penggunaan instans SLB yang sudah ada tidak akan menimpa listener-nya. Untuk memaksa menimpa listener yang ada, atur service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners ke "true". Konfigurasi ini hanya akan menimpa listener dari Service saat ini dan tidak memengaruhi listener lainnya.

    Catatan

    Penggunaan kembali instans SLB yang sudah ada tidak menimpa listener yang ada secara default karena dua alasan berikut:

    • Jika layanan terikat pada listener instans SLB yang ada, penimpaan paksa dapat menyebabkan gangguan layanan.

    • CCM hanya mendukung konfigurasi backend terbatas dan tidak dapat memproses konfigurasi kompleks. Jika Anda memiliki persyaratan konfigurasi backend yang kompleks, Anda dapat mengonfigurasi listener di konsol tanpa menimpanya.

    Karena alasan tersebut, kami menyarankan agar Anda tidak memaksa menimpa listener. Anda dapat memaksa menimpa listener jika port listener instans SLB yang ada tidak lagi digunakan.

  • Untuk versi CCM sebelum v2.10.0, Anda tidak dapat menambahkan tag tambahan saat menggunakan instans SLB yang sudah ada (annotation: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-additional-resource-tags).

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

Menentukan apakah akan memaksa menimpa listener instans CLB saat menggunakan instans SLB yang sudah ada. Nilai yang valid:

  • "true": Menimpa listener. Ini hanya menimpa listener dari Service saat ini dan tidak memengaruhi listener lainnya.

  • "false": Tidak menimpa listener.

Nilai default: "false"

Penting

Saat Anda menggunakan kembali instans CLB yang sudah ada dan mengatur force-override ke "true", jangan izinkan beberapa Service menggunakan kembali listener yang sama dari instans CLB. Jika tidak, konflik konfigurasi listener dapat terjadi.

v1.9.3.81-gca19cd4-aliyun dan yang 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

Specify primary and secondary zones when you create an SLB instance

Annotation: Tersedia beberapa anotasi, sebagaimana dijelaskan dalam tabel berikut. Setelah instans SLB dibuat, Anda tidak dapat mengubah zona primer dan sekundernya.

Beberapa wilayah tidak mendukung zona primer dan sekunder untuk instans SLB. Untuk informasi selengkapnya, lihat halaman pembuatan instans CLB.

Anotasi

Deskripsi

Supported CCM versions

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

ID zona primer tempat server backend ditempatkan.

v1.9.3.10-gfb99107-aliyun dan yang lebih baru

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

ID zona sekunder tempat server backend ditempatkan.

v1.9.3.10-gfb99107-aliyun dan yang 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

Create a pay-by-bandwidth SLB instance

Annotation: Tersedia beberapa anotasi, sebagaimana dijelaskan dalam tabel berikut. Dua anotasi berikut wajib digunakan.

Anotasi

Deskripsi

Supported CCM versions

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

Metode penagihan instans SLB. Nilai yang valid:

  • paybytraffic

  • paybybandwidth

Nilai default: paybytraffic

v1.9.3 dan yang lebih baru

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

Bandwidth instans SLB. Ini adalah bandwidth puncak. Nilai default adalah 50. Parameter ini hanya berlaku untuk instans SLB yang menghadap Internet. Untuk informasi selengkapnya tentang batasan lainnya, lihat Modify the billing method of an Internet-facing SLB instance.

v1.9.3.10-gfb99107-aliyun dan yang 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

Specify a vSwitch for the SLB instance

Annotation: Tersedia beberapa anotasi, sebagaimana dijelaskan dalam tabel berikut. Dua anotasi berikut wajib digunakan.

Anotasi

Deskripsi

Supported CCM versions

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

Menentukan tipe alamat instans SLB. Nilai yang valid:

  • internet: Service diakses melalui Internet. Address Type instans CLB harus Public.

  • intranet: Service diakses melalui jaringan pribadi. Address Type instans CLB harus Private.

Nilai default: internet

v1.9.3 dan yang lebih baru

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

ID vSwitch tempat instans SLB berada. vSwitch harus berada dalam virtual private cloud (VPC) yang sama dengan kluster Kubernetes.

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

Anda dapat masuk ke Konsol VPC untuk menanyakan ID vSwitch.

v1.9.3 dan yang 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

Specify an IP address for an internal-facing SLB instance

Annotation: Tersedia beberapa anotasi, sebagaimana dijelaskan dalam tabel berikut. Tiga anotasi berikut wajib digunakan.

Anotasi

Deskripsi

Supported CCM versions

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

Menentukan tipe alamat instans SLB. Nilai yang valid:

  • internet: Service diakses melalui Internet. Ini adalah nilai default. Address Type instans CLB harus Public.

  • intranet: Service diakses melalui jaringan pribadi. Address Type instans CLB harus Private.

Nilai default: internet

v1.9.3 dan yang lebih baru

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

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

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

Anda dapat masuk ke Konsol VPC untuk menanyakan ID vSwitch.

v1.9.3 dan yang lebih baru

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

Alamat IP instans SLB yang menghadap internal.

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

  • Anda tidak dapat mengubah alamat IP setelah dibuat.

v2.7.0 dan yang 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

Add extra tags to the SLB instance

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

Deskripsi

Supported CCM versions

Daftar tag yang akan ditambahkan. Pisahkan beberapa tag dengan koma (,), misalnya, "k1=v1,k2=v2". Untuk CCM v2.10.0 dan yang lebih baru, Anda dapat memodifikasi tag instans yang telah dibuat dan instans yang digunakan kembali.

Penting

Setelah Anda menambahkan anotasi ini ke Service untuk menentukan tag tambahan, modifikasi tambahan pada tag instans SLB yang sesuai di konsol mungkin akan ditimpa.

v1.9.3 dan yang 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

Create an IPv6 SLB instance

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

Deskripsi

Supported CCM versions

Versi IP instans SLB. Anda tidak dapat mengubah versi IP setelah instans dibuat. Saat menggunakan anotasi ini, mode kube-proxy kluster harus IPVS. Nilai yang valid:

  • ipv4: IPv4.

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

Nilai default: ipv4

v1.9.3.220-g24b1885-aliyun dan yang 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

Enable deletion protection for the SLB instance

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

Deskripsi

Supported CCM versions

Fitur perlindungan penghapusan untuk instans SLB. Nilai yang valid:

  • on

  • off

Nilai default: on

Penting

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

v1.9.3.313-g748f81e-aliyun dan yang 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

Enable configuration read-only mode for the SLB instance

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

Deskripsi

Supported CCM versions

Mode baca-saja konfigurasi untuk instans SLB. Nilai yang valid:

  • ConsoleProtection

  • NonProtection

Nilai default: ConsoleProtection

v1.9.3.313-g748f81e-aliyun dan yang 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

Specify a name for the SLB instance

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

Deskripsi

Supported CCM versions

Nama instans SLB. Nama harus terdiri dari 2 hingga 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 yang 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

Specify the resource group for the SLB instance

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

Deskripsi

Supported CCM versions

ID kelompok sumber daya tempat instans SLB berada. Anda tidak dapat mengubah ID kelompok sumber daya setelah ditentukan. Anda dapat mencari ID kelompok sumber daya di Alibaba Cloud Resource Management platform.

v1.9.3.313-g748f81e-aliyun dan yang 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

Set a hostname for the Service

Annotation: Tersedia beberapa anotasi, sebagaimana dijelaskan dalam tabel berikut.

Anotasi

Deskripsi

Supported CCM versions

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

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

v1.9.3 dan yang lebih baru

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

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

Perhatikan hal-hal berikut:

  • Setelah Anda menambahkan anotasi ini, EXTERNAL-IP Service berubah dari alamat IP CLB default menjadi your_service_name. Saat Anda mengakses alamat IP CLB di dalam kluster, trafik dialihkan melalui instans CLB lalu diteruskan ke kluster.

  • Setelah Anda menambahkan anotasi ini, jika protokol listener adalah TCP atau UDP, masalah akses loopback terjadi saat Anda mengakses alamat IP CLB di dalam kluster. Untuk informasi selengkapnya, lihat A client cannot access an SLB instance.

  • Menambahkan anotasi ini tidak secara otomatis mengaitkan instans CLB dengan nama domain. Untuk melakukannya, buka halaman layanan nama domain untuk membeli nama domain dan mengaitkannya dengan instans CLB. Untuk membeli nama domain, lihat What is Alibaba Cloud DNS?.

v2.3.0 dan yang 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

Create a pay-by-usage SLB instance

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

Deskripsi

Supported CCM versions

Metode penagihan instans. Nilai yang valid:

  • PayBySpec: Nilai default. bayar-per-spesifikasi.

  • PayByCLCU: bayar-per-LCU.

Nilai default: PayBySpec

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

  • Anda tidak dapat menentukan spesifikasi untuk instans SLB bayar-per-LCU. Nilai PayByCLCU tidak dapat digunakan bersamaan dengan anotasi service.beta.kubernetes.io/alibaba-cloud-loadbalancer-spec.

v2.4.0 dan yang 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

Retain the auto-created SLB instance when the Service is deleted

Annotation: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-preserve-lb-on-delete

Description

Supported CCM versions

Mempertahankan instans CLB yang dibuat untuk Service saat Anda menghapus Service LoadBalancer, dan menghapus tag kubernetes.do.not.delete dan ack.aliyun.com dari instans CLB. Server yang ada di kelompok vServer tetap dipertahankan.

Saat fitur ini diaktifkan, event Warning bertipe PreservedOnDelete dihasilkan selama sinkronisasi Service. Setelah mengonfigurasi anotasi ini, kami menyarankan Anda memeriksa keberadaan event tersebut untuk memastikan fitur telah diaktifkan.

Nilai yang valid:

  • Tidak kosong: mengaktifkan fitur retensi.

  • Kosong atau tidak diatur: menonaktifkan fitur retensi.

Penting

Lakukan operasi ini dengan menghapus Service, bukan dengan mengubah tipe Service. Jika tidak, Service mungkin salah dikaitkan kembali dengan instans CLB yang sebelumnya dipertahankan.

v2.10.0 dan yang lebih baru

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

Operasi listener khas

Configure the session persistence timeout for a TCP listener

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

Deskripsi

Supported CCM versions

Periode timeout persistensi sesi. Ini hanya berlaku untuk listener TCP. Jika instans SLB memiliki beberapa listener TCP, konfigurasi ini diterapkan ke semuanya secara default.

Unit: detik. Nilai yang valid: 0 hingga 3600. Nilai default: 0. Nilai 0 menonaktifkan persistensi sesi. Untuk informasi selengkapnya, lihat CreateLoadBalancerTCPListener.

v1.9.3 dan yang 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

Configure session persistence (insert cookie) for HTTP and HTTPS listeners

Annotation: Tersedia beberapa anotasi, sebagaimana dijelaskan dalam tabel berikut. Saat memasukkan cookie, empat anotasi berikut wajib digunakan.

  • Fitur ini hanya didukung oleh instans SLB yang menggunakan protokol HTTP atau HTTPS.

  • Jika Anda mengonfigurasi beberapa listener HTTP atau HTTPS, konfigurasi persistensi sesi ini diterapkan ke semuanya secara default.

Anotasi

Deskripsi

Supported CCM versions

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

Menentukan apakah akan mengaktifkan persistensi sesi. 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 yang lebih baru

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

Metode untuk memproses cookie. Ini hanya berlaku untuk listener HTTP dan HTTPS. Parameter ini wajib digunakan saat service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-session diatur ke on. Nilai yang valid:

  • insert: insert cookie.

  • server: rewrite cookie.

Untuk informasi lebih lanjut, lihat CreateLoadBalancerHTTPListener dan CreateLoadBalancerHTTPSListener.

v1.9.3 dan yang lebih baru

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

Periode timeout cookie. Parameter ini wajib digunakan 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. Unit: detik. Nilai yang valid: 1 hingga 86400.

Untuk informasi lebih lanjut, lihat CreateLoadBalancerHTTPListener dan CreateLoadBalancerHTTPSListener.

v1.9.3 dan yang lebih baru

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

Nama cookie yang dikonfigurasi di server.

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

Parameter ini wajib digunakan 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 selengkapnya, lihat CreateLoadBalancerHTTPListener dan CreateLoadBalancerHTTPSListener.

v1.9.3 dan yang lebih baru

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

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

v1.9.3 dan yang 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

Configure an access control policy group for the SLB instance

Annotation: Tersedia beberapa anotasi, sebagaimana dijelaskan dalam tabel berikut. Tiga anotasi berikut wajib digunakan.

Sebelum menggunakan anotasi ini untuk membuat instans SLB dengan kontrol akses, Anda harus membuat kelompok kebijakan kontrol akses di Classic Load Balancer (CLB) console dan mencatat ID-nya (acl-id).

Anotasi

Deskripsi

Supported CCM versions

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

Menentukan apakah kontrol akses diaktifkan. Nilai yang valid:

  • on

  • off

Nilai default: off

v1.9.3.164-g2105d2e-aliyun dan yang lebih baru

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

ID kelompok kebijakan kontrol akses yang dikaitkan dengan listener. Parameter ini wajib digunakan saat service.beta.kubernetes.io/alibaba-cloud-loadbalancer-acl-status diatur ke "on".

v1.9.3.164-g2105d2e-aliyun dan yang lebih baru

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

Tipe kebijakan kontrol akses. Nilai yang valid:

  • white: daftar putih. Hanya permintaan dari alamat IP atau Blok CIDR dalam kelompok kebijakan kontrol akses yang dipilih yang diteruskan. Daftar putih cocok untuk skenario di mana aplikasi hanya mengizinkan akses dari alamat IP tertentu. Mengatur daftar putih menimbulkan risiko bisnis tertentu. Setelah daftar putih diatur, hanya alamat IP dalam daftar putih yang dapat mengakses listener SLB. Jika Anda mengaktifkan daftar putih tetapi tidak menambahkan alamat IP apa pun ke kelompok kebijakan kontrol akses, listener SLB akan meneruskan semua permintaan.

  • black: blacklist. Semua permintaan dari alamat IP atau Blok CIDR dalam kelompok kebijakan kontrol akses yang dipilih tidak diteruskan. Blacklist cocok untuk skenario di mana aplikasi membatasi akses dari alamat IP tertentu. Jika Anda mengaktifkan blacklist tetapi tidak menambahkan alamat IP apa pun ke kelompok kebijakan kontrol akses, listener SLB akan meneruskan semua permintaan. Parameter ini wajib digunakan saat parameter AclStatus diatur ke on.

v1.9.3.164-g2105d2e-aliyun dan yang 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}" # You cannot configure multiple policy groups.
    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

Specify a forwarding port for the SLB instance

Port forwarding mengacu pada penerusan permintaan dari port HTTP ke port HTTPS.

Annotation: Tersedia beberapa anotasi, sebagaimana dijelaskan dalam tabel berikut. Tiga anotasi berikut wajib digunakan.

Anotasi

Deskripsi

Supported CCM versions

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

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

v1.9.3 dan yang lebih baru

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

ID sertifikat di Alibaba Cloud.

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

Catatan

Untuk membuat sertifikat, lihat Select an Alibaba Cloud-issued certificate.

v1.9.3.164-g2105d2e-aliyun dan yang lebih baru

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

Meneruskan permintaan HTTP ke port HTTPS tertentu, misalnya, 80:443.

v1.9.3.164-g2105d2e-aliyun dan yang 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

Set the scheduling algorithm for the SLB instance

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

Deskripsi

Supported CCM versions

Algoritma penjadwalan. Nilai valid:

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

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

  • sch: hash IP sumber. Permintaan dari alamat IP sumber yang sama dijadwalkan ke server backend yang sama.

  • tch: hash empat elemen (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 informasi selengkapnya tentang nilai yang valid untuk parameter ini, lihat bidang Scheduler dalam dokumentasi API untuk membuat tipe listener yang sesuai, seperti Create a TCP listener.

v1.9.3 dan yang 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 listener UDP

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

Buat listener HTTP

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

Deskripsi

Supported CCM versions

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

v1.9.3 dan yang 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 listener HTTPS

Annotation: Tersedia beberapa anotasi, sebagaimana dijelaskan dalam tabel berikut.

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

Anotasi

Deskripsi

Supported CCM versions

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

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

v1.9.3 dan yang lebih baru

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

ID sertifikat di Alibaba Cloud.

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

Catatan

Untuk membuat sertifikat, lihat Select an Alibaba Cloud-issued certificate.

v1.9.3.164-g2105d2e-aliyun dan yang 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

Create a listener with health checks

Set up a TCP health check

Annotation: Tersedia beberapa anotasi, sebagaimana dijelaskan dalam tabel berikut. Semua anotasi berikut wajib digunakan.

Pemeriksaan kesehatan diaktifkan secara default untuk port TCP.

Anotasi

Deskripsi

Supported CCM versions

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 yang 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 selengkapnya, lihat CreateLoadBalancerTCPListener.

v1.9.3 dan yang lebih baru

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

Periode waktu untuk menunggu respons dari pemeriksaan kesehatan. Ini berlaku untuk pemeriksaan kesehatan TCP. Jika instans ECS backend tidak merespons dalam periode yang ditentukan, pemeriksaan kesehatan gagal. Unit: detik. Nilai yang valid: 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, nilai pertama tidak valid dan periode timeout adalah nilai yang kedua. Nilai default adalah 5. Untuk informasi selengkapnya, lihat CreateLoadBalancerTCPListener.

v1.9.3 dan yang lebih baru

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

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

Nilai yang valid: 2 hingga 10. Nilai default: 3. Untuk informasi selengkapnya, lihat CreateLoadBalancerTCPListener.

v1.9.3 dan yang lebih baru

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

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

v1.9.3 dan yang lebih baru

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

Interval antar pemeriksaan kesehatan. Unit: detik. Nilai yang valid: 1 hingga 50. Nilai default: 2. Untuk informasi selengkapnya, lihat CreateLoadBalancerTCPListener.

v1.9.3 dan yang 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

Set up a UDP health check

Annotation: Tersedia beberapa anotasi, sebagaimana dijelaskan dalam tabel berikut. Semua anotasi berikut wajib digunakan.

Pemeriksaan kesehatan diaktifkan secara default untuk port UDP.

Anotasi

Deskripsi

Supported CCM versions

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 yang lebih baru

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

Periode waktu untuk menunggu respons dari pemeriksaan kesehatan. Ini berlaku untuk pemeriksaan kesehatan TCP. Jika instans ECS backend tidak merespons dalam periode yang ditentukan, pemeriksaan kesehatan gagal. Unit: detik. Nilai yang valid: 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, nilai pertama tidak valid dan periode timeout adalah nilai yang kedua. Nilai default adalah 5. Untuk informasi selengkapnya, lihat CreateLoadBalancerUDPListener.

v1.9.3 dan yang lebih baru

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

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

Nilai yang valid: 2 hingga 10. Nilai default: 3. Untuk informasi selengkapnya, lihat CreateLoadBalancerUDPListener.

v1.9.3 dan yang lebih baru

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

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

v1.9.3 dan yang lebih baru

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

Interval antar pemeriksaan kesehatan. Unit: detik. Nilai yang valid: 1 hingga 50. Nilai default: 2. Untuk informasi selengkapnya, lihat CreateLoadBalancerUDPListener.

v1.9.3 dan yang 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

Disable health checks for TCP and UDP listeners

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

Deskripsi

Supported CCM versions

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

  • on

  • off

Nilai default: on

v2.6.0 dan yang lebih baru

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

Set up an HTTP health check

Annotation: Tersedia beberapa anotasi, sebagaimana dijelaskan dalam tabel berikut.

Anotasi

Deskripsi

Supported CCM versions

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

Nilai valid:

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

  • off: Nilai default untuk listener HTTP adalah off.

Nilai default: off

v1.9.3 dan yang 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 selengkapnya, lihat CreateLoadBalancerHTTPListener.

v1.9.3 dan yang lebih baru

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

URI untuk pemeriksaan kesehatan. Anda tidak perlu mengonfigurasi parameter anotasi ini untuk pemeriksaan kesehatan TCP.

v1.9.3 dan yang lebih baru

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

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

  • http_2xx

  • http_3xx

  • http_4xx

  • http_5xx

Nilai default: http_2xx

Untuk informasi selengkapnya, lihat CreateLoadBalancerHTTPListener.

v1.9.3 dan yang lebih baru

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

Nama domain untuk pemeriksaan kesehatan. Nilai yang valid:

  • $_ip: alamat IP pribadi server backend. Jika Anda menentukan alamat IP atau tidak menentukan parameter ini, instans SLB menggunakan alamat IP pribadi setiap server backend sebagai nama domain untuk pemeriksaan kesehatan.

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

Untuk informasi selengkapnya, lihat CreateLoadBalancerHTTPListener.

v1.9.3 dan yang lebih baru

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

Periode waktu untuk menunggu respons dari pemeriksaan kesehatan. Ini berlaku untuk pemeriksaan kesehatan HTTP. Jika instans ECS backend tidak merespons dalam periode yang ditentukan, pemeriksaan kesehatan gagal.

Unit: detik. Nilai yang valid: 1 hingga 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, anotasi service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-timeout tidak valid dan periode timeout adalah nilai service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval.

Untuk informasi selengkapnya, lihat CreateLoadBalancerHTTPListener.

v1.9.3 dan yang lebih baru

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

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

Nilai yang valid: 2 hingga 10. Nilai default: 3. Untuk informasi selengkapnya, lihat CreateLoadBalancerHTTPListener.

v1.9.3 dan yang lebih baru

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

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

v1.9.3 dan yang lebih baru

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

Interval antar pemeriksaan kesehatan. Unit: detik. Nilai yang valid: 1 hingga 50. Nilai default: 2. Untuk informasi selengkapnya, lihat CreateLoadBalancerHTTPListener.

v1.9.3 dan yang lebih baru

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

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

v1.9.3 dan yang lebih baru

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

Metode pemeriksaan kesehatan untuk listener HTTP. Nilai yang valid:

  • head

  • get

v2.3.0 dan yang 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"
    # Optional. Set the HTTP status code for the health check.
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-httpcode: "http_4xx"
    # Optional. Set the domain name for the health check.
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-domain: "www.aliyun.com"
    # Optional. Set the method for the health check.
    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

Configure connection draining for the listener

Annotation: Tersedia beberapa anotasi, sebagaimana dijelaskan dalam tabel berikut. Semua anotasi berikut wajib digunakan.

Fitur ini hanya didukung oleh protokol TCP dan UDP.

Anotasi

Deskripsi

Supported CCM versions

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

Menentukan apakah akan mengaktifkan drainase koneksi. Nilai valid:

  • on

  • off

v2.0.1 dan yang lebih baru

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

Periode timeout pengurasan koneksi. Unit: detik. Nilai yang valid: 10 hingga 900.

v2.0.1 dan yang 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

Configure extra request headers for the listener

Annotation: Tersedia beberapa anotasi, sebagaimana dijelaskan dalam tabel berikut.

Fitur ini hanya didukung oleh protokol HTTP dan HTTPS.

Anotasi

Deskripsi

Supported CCM versions

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

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

v1.9.3 dan yang lebih baru

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

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

  • on

  • off

Nilai default: off

v2.1.0 dan yang lebih baru

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

Menentukan apakah akan menggunakan header X-Forwarded-For-SLBPORT untuk mengambil port listener instans SLB. Nilai yang valid:

  • on

  • off

Nilai default: off

v2.9.1 dan yang lebih baru

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

Menentukan apakah akan menggunakan header X-Forwarded-For-ClientSrcPort untuk mengambil port klien yang mengakses instans SLB. Nilai yang valid:

  • on

  • off

Nilai default: off

v2.9.1 dan yang 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

Set the idle connection timeout for the listener

Annotation: Tersedia beberapa anotasi, sebagaimana dijelaskan dalam tabel berikut.

Fitur ini hanya didukung oleh protokol HTTP dan HTTPS.

Anotasi

Deskripsi

Supported CCM versions

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

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

v1.9.3 dan yang lebih baru

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

Periode timeout koneksi idle untuk listener. Unit: detik. Nilai yang valid: 1 hingga 60.

Nilai default: 15

v2.1.0 dan yang 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

Disable the HTTP/2 feature for the listener

Annotation: Tersedia beberapa anotasi, sebagaimana dijelaskan dalam tabel berikut.

Fitur ini hanya didukung oleh protokol HTTPS.

Anotasi

Deskripsi

Supported CCM versions

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

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

v1.9.3 dan yang lebih baru

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

ID sertifikat di Alibaba Cloud.

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

Catatan

Untuk membuat sertifikat, lihat Select an Alibaba Cloud-issued certificate.

v1.9.3.164-g2105d2e-aliyun dan yang lebih baru

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

Menentukan apakah akan mengaktifkan fitur HTTP/2. Nilai yang valid:

  • on

  • off

Nilai default: on

v2.1.0 dan yang 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

Specify the request timeout for the listener

Annotation: Tersedia beberapa anotasi, sebagaimana dijelaskan dalam tabel berikut.

Fitur ini hanya didukung oleh protokol HTTP dan HTTPS.

Anotasi

Deskripsi

Supported CCM versions

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

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

v1.9.3 dan yang lebih baru

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

Periode timeout permintaan. Unit: detik. Nilai yang valid: 1 hingga 180. Nilai default: 60

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

v2.3.0 dan yang 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

Specify the connection timeout for the listener

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

Fitur ini hanya didukung oleh protokol TCP.

Deskripsi

Supported CCM versions

Periode timeout koneksi. Unit: detik. Nilai yang valid: 10 hingga 900. Untuk informasi selengkapnya, lihat CreateLoadBalancerTCPListener.

v2.3.0 dan yang 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

Configure a security policy for the listener

Annotation: Tersedia beberapa anotasi, sebagaimana dijelaskan dalam tabel berikut.

Fitur ini hanya didukung oleh protokol HTTPS.

Anotasi

Deskripsi

Supported CCM versions

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

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

v1.9.3 dan yang lebih baru

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

ID sertifikat di Alibaba Cloud.

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

Catatan

Untuk membuat sertifikat, lihat Select an Alibaba Cloud-issued certificate.

v1.9.3.164-g2105d2e-aliyun dan yang lebih baru

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

Kebijakan keamanan mencakup versi protokol TLS dan paket sandi yang tersedia untuk HTTPS. Untuk informasi selengkapnya, 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 yang 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

Configure TCP and UDP protocols for the listener at the same time

Catatan

Fitur ini memerlukan kluster Kubernetes versi v1.24 atau yang lebih baru. Untuk informasi selengkapnya tentang cara meningkatkan kluster, lihat Upgrade an ACK cluster.

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

Configure the Proxy Protocol for TCP and UDP listeners

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

Deskripsi

Supported CCM versions

Mengonfigurasi Proxy Protocol untuk listener TCP dan UDP. Setelah Anda mengonfigurasi Proxy Protocol, Anda dapat menggunakannya untuk membawa alamat IP sumber klien ke server backend. Nilai yang valid:

  • on

  • off

Nilai default: off

Penting

Fitur ini tidak mendukung migrasi online yang mulus. Mengalihkan Proxy Protocol memerlukan peningkatan layanan dengan downtime. Konfigurasikan dengan hati-hati.

v2.6.0 dan yang 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 khas

Use worker nodes with a specific label as backend servers

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

Deskripsi

Supported CCM versions

Menentukan node pekerja yang akan disambungkan ke backend instans CLB. Anda dapat menentukan node pekerja menggunakan label. Pisahkan beberapa label dengan koma (,), misalnya, "k1=v1,k2=v2". Beberapa label memiliki hubungan logis AND.

v1.9.3 dan yang 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

Use the nodes where pods reside as backend servers

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

Secara default, externalTrafficPolicy diatur ke mode Cluster. Ini menyambungkan semua node dalam kluster ke kelompok server backend. Mode Local hanya menyambungkan node tempat pod berada sebagai server backend.

Deskripsi

Supported CCM versions

Algoritma penjadwalan. Nilai valid:

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

    Dalam mode Local, Anda harus mengatur kebijakan penjadwalan ke Round-robin berbobot (wrr).

    Catatan

    Untuk CCM v1.9.3.164-g2105d2e-aliyun dan yang lebih baru, jika kebijakan trafik eksternal diatur ke mode Local, bobot node diatur secara otomatis berdasarkan jumlah pod pada node tersebut. Untuk informasi selengkapnya tentang aturan perhitungan bobot, lihat How are node weights automatically set in Local mode?.

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

Nilai default: rr

v1.9.3 dan yang 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

Remove unschedulable nodes from the backend server group of the CLB instance

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

Deskripsi

Supported CCM versions

Menghapus node SchedulingDisabled dari kelompok server backend instans CLB. Nilai yang valid:

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

  • off: Perintah kubectl cordon dan kubectl drain mengatur node ke status unschedulable. Dalam hal ini, node dalam status unschedulable tidak dihapus dari kelompok server backend instans CLB.

Nilai default: off

v1.9.3.164-g2105d2e-aliyun dan yang 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

Directly attach pod ENIs to the backend of the CLB instance

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

Deskripsi

Nilai default

Supported CCM versions

Tipe server backend untuk instans CLB. Nilai yang valid:

  • eni: Gunakan nilai ini untuk menyambungkan pod ke backend instans CLB. Ini meningkatkan kinerja penerusan jaringan. Nilai ini hanya valid dalam mode jaringan Terway.

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

  • ecs: menyambungkan instans ECS ke backend instans CLB.

  • Mode jaringan Flannel: ecs

  • Mode jaringan Terway:

    • Kluster Terway yang dibuat sebelum 10 Agustus 2020: ecs

    • Kluster Terway yang dibuat setelah 10 Agustus 2020: eni

v1.9.3.164-g2105d2e-aliyun dan yang 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 ulang grup vServer yang ada

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

Anda dapat menggunakan kembali kelompok vServer yang sudah ada. Fitur ini hanya berlaku saat Anda menggunakan kembali instans CLB yang sudah ada. Untuk contoh penggunaan, lihat Deploy services across clusters by reusing an SLB instance.

Set the weight of the Service to receive traffic

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

Saat beberapa Service menggunakan kembali instans CLB yang sama, Anda dapat menggunakan anotasi ini untuk mengatur bobot Service saat ini dalam menerima trafik. Anotasi ini hanya berlaku saat Anda menggunakan kembali kelompok vServer yang sudah ada. Untuk contoh penggunaan, lihat Deploy services across clusters by reusing an SLB instance.

Ignore backend server weight updates

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

Description

Supported CCM versions

Mengabaikan pembaruan bobot server backend dalam kelompok vServer selama sinkronisasi Service. Konfigurasi ini cocok untuk skenario di mana Anda perlu mengelola bobot server backend secara manual menggunakan mekanisme selain CCM. Nilai yang valid:

  • on

  • off

Nilai default: off

v2.11.1 dan yang 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