All Products
Search
Document Center

Container Compute Service:Konfigurasikan Classic Load Balancer (CLB) dengan anotasi

Last Updated:Apr 22, 2026

Untuk mengaktifkan fitur load balancing lanjutan, gunakan anotasi dalam file YAML Service guna mengonfigurasi tiga jenis resource: CLB, listener, dan grup server backend.

Indeks

Konten utama

Tautan cepat

Menggunakan anotasi

Operasi CLB

Operasi listener

Operasi grup server backend

Dokumentasi terkait

Anotasi

  • Anotasi bersifat case-sensitive.

  • Sebelum menggunakan anotasi, periksa topik ini untuk versi Cloud Controller Manager yang didukung. Untuk meningkatkan Cloud Controller Manager, lihat manage components. Untuk log perubahan CCM, lihat Cloud Controller Manager.

  • Sejak 11 September 2019, awalan alicloud pada annotations telah diperbarui menjadi alibaba-cloud.

    Contohnya:

    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. Tidak diperlukan perubahan pada konfigurasi yang sudah ada.

Operasi CLB

Buat load balancer publik

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

Buat load balancer pribadi

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

Deskripsi

Default

Versi CCM yang didukung

Menentukan jenis alamat load balancer. Nilai yang valid:

  • internet: Mengekspos Service melalui jaringan publik. Ini adalah nilai default. IP Version dari instans CLB harus Internet-facing.

  • intranet: Mengekspos Service melalui jaringan pribadi. IP Version dari instans CLB harus Internal-facing.

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

Tentukan spesifikasi load balancer

Anotasi: Beberapa, seperti yang ditunjukkan pada tabel berikut.

Anotasi

Deskripsi

Default

Versi CCM yang didukung

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

Menentukan metode penagihan instans. Gunakan PayBySpec untuk membuat instans bayar-per-spesifikasi.

  • paybytraffic

  • paybybandwidth

PayBySpec

v1.9.3 dan yang lebih baru

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

Spesifikasi instans load balancer. Untuk informasi selengkapnya, lihat CreateLoadBalancer. Gunakan anotasi ini untuk membuat instans CLB dengan spesifikasi tertentu, atau untuk memperbarui spesifikasi instans yang sudah ada.

Penting

Jika Anda memodifikasi spesifikasi di konsol CLB (operasi ini hanya didukung untuk instans bayar-per-spesifikasi), CCM dapat mengembalikan perubahan tersebut.

slb.s1.small

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

Gunakan load balancer yang sudah ada

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

Deskripsi

Default

Versi CCM yang didukung

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

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

    Catatan

    Secara default, listener yang sudah ada tidak ditimpa karena alasan berikut:

    • Jika beban kerja sudah terikat ke listener pada instans load balancer yang ada, memaksa penimpaan dapat menyebabkan gangguan layanan.

    • CCM hanya mendukung konfigurasi backend terbatas dan tidak dapat mengelola pengaturan kompleks. Untuk kebutuhan kompleks, konfigurasikan listener di konsol dan pastikan tidak ditimpa.

    Karena alasan ini, kami menyarankan agar Anda tidak memaksa menimpa listener. Anda hanya boleh memaksa menimpa listener jika port-nya pada instans load balancer yang ada tidak lagi digunakan.

  • Anda tidak dapat menambahkan tag tambahan dengan anotasi service.beta.kubernetes.io/alibaba-cloud-loadbalancer-additional-resource-tags saat menggunakan kembali instans load balancer yang sudah ada.

Tidak ada

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}" # Beberapa kelompok kebijakan tidak dapat dikonfigurasi.
  name: nginx
  namespace: default
spec:
  ports:
  - port: 443
    protocol: TCP
    targetPort: 443
  selector:
    run: nginx
  type: LoadBalancer

Gunakan load balancer yang sudah ada dan timpa listener

Anotasi: Beberapa, seperti yang ditunjukkan pada tabel berikut. Operasi ini secara paksa menimpa listener yang sudah ada. Jika terjadi konflik port listener, listener yang sudah ada akan dihapus.

Anotasi

Deskripsi

Default

Versi CCM yang didukung

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

ID instans CLB yang sudah ada.

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

    Catatan

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

    • Jika layanan terikat ke listener load balancer yang sudah ada, memaksa penimpaan dapat menyebabkan gangguan layanan.

    • Cloud Controller Manager (CCM) memiliki dukungan terbatas untuk konfigurasi backend dan tidak dapat menangani konfigurasi kompleks. Jika Anda memerlukan konfigurasi backend kompleks, konfigurasikan listener di konsol tanpa menimpanya.

    Karena alasan ini, jangan memaksa menimpa listener. Namun, jika port listener pada load balancer yang sudah ada tidak lagi digunakan, Anda dapat memaksa menimpanya.

  • Saat menggunakan load balancer yang sudah ada, menambahkan tag ekstra dengan anotasi service.beta.kubernetes.io/alibaba-cloud-loadbalancer-additional-resource-tags tidak didukung.

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

Menentukan apakah akan secara paksa menimpa listener instans CLB. Nilai yang valid:

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

  • "false": Tidak menimpa listener.

Penting

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

"false"

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

Tentukan zona ketersediaan primer dan cadangan

Anotasi: Beberapa, seperti yang ditunjukkan pada tabel berikut. Zona ketersediaan primer dan cadangan tidak dapat diubah setelah instans dibuat.

Fitur ini tidak tersedia di semua wilayah. Lihat halaman pembuatan instans CLB untuk informasi ketersediaannya.

Anotasi

Deskripsi

Default

Versi CCM yang didukung

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

ID zona ketersediaan primer.

Tidak ada

v1.9.3.10-gfb99107-aliyun dan yang lebih baru

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

ID zona ketersediaan cadangan.

Tidak ada

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

Buat load balancer bayar-per-bandwidth

Anotasi: Beberapa, seperti yang ditunjukkan pada tabel berikut. Dua anotasi berikut wajib digunakan.

Anotasi

Deskripsi

Default

Versi CCM yang didukung

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

Metode penagihan instans load balancer. Nilai yang valid:

  • paybytraffic

  • paybybandwidth

paybytraffic

v1.9.3 dan yang lebih baru

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

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

50

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

Tentukan VSwitch untuk load balancer

Anotasi: Beberapa, seperti yang ditunjukkan pada tabel berikut. Dua anotasi berikut wajib digunakan.

Anotasi

Deskripsi

Default

Versi CCM yang didukung

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

Menentukan jenis alamat load balancer. Nilai yang valid:

  • internet: Mengekspos Service melalui jaringan publik. Ini adalah nilai default. IP Version dari instans CLB harus Internet-facing.

  • intranet: Mengekspos Service melalui jaringan pribadi. IP Version dari instans CLB harus Internal-facing.

internet

v1.9.3 dan yang lebih baru

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

ID VSwitch tempat instans load balancer berada. VSwitch harus berada di VPC yang sama dengan kluster Kubernetes.

Anotasi ini mengharuskan pengaturan service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type ke "intranet".

Anda dapat menemukan ID VSwitch di konsol VPC.

Tidak ada

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

Tentukan alamat IP untuk load balancer pribadi

Anotasi: Beberapa, seperti yang ditunjukkan pada tabel berikut. Tiga anotasi berikut wajib digunakan.

Anotasi

Deskripsi

Default

Versi CCM yang didukung

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

Menentukan jenis alamat load balancer. Nilai yang valid:

  • internet: Mengekspos Service melalui jaringan publik. Ini adalah nilai default. IP Version dari instans CLB harus Internet-facing.

  • intranet: Mengekspos Service melalui jaringan pribadi. IP Version dari instans CLB harus Internal-facing.

internet

v1.9.3 dan yang lebih baru

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

ID VSwitch tempat instans load balancer berada. VSwitch harus berada di VPC yang sama dengan kluster Kubernetes.

Anotasi ini mengharuskan pengaturan service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type ke "intranet".

Anda dapat menemukan ID VSwitch di konsol VPC.

Tidak ada

v1.9.3 dan yang lebih baru

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

Alamat IP instans load balancer pribadi.

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

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

Tidak ada

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

Tambahkan tag ke load balancer

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

Deskripsi

Default

Versi CCM yang didukung

Daftar tag yang dipisahkan koma untuk ditambahkan, contohnya "k1=v1,k2=v2".

Tidak ada

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

Buat load balancer IPv6

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

Deskripsi

Default

Versi CCM yang didukung

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

  • ipv4: IPv4.

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

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

Aktifkan perlindungan penghapusan untuk load balancer

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

Deskripsi

Default

Versi CCM yang didukung

Menentukan apakah perlindungan penghapusan diaktifkan untuk instans load balancer. Nilai yang valid:

  • on

  • off

Penting

Perhatikan bahwa jika Anda mengaktifkan perlindungan penghapusan di konsol CLB, instans load balancer masih dapat dihapus dengan menjalankan perintah kubectl delete svc {your-svc-name}.

on

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

Aktifkan perlindungan modifikasi untuk load balancer

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

Deskripsi

Default

Versi CCM yang didukung

Menentukan status perlindungan modifikasi untuk instans load balancer. Nilai yang valid:

  • ConsoleProtection

  • NonProtection

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

Tentukan nama load balancer

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

Deskripsi

Default

Versi CCM yang didukung

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

Tidak ada

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

Tentukan kelompok sumber daya untuk load balancer

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

Deskripsi

Default

Versi CCM yang didukung

ID kelompok sumber daya untuk instans load balancer. ID kelompok sumber daya tidak dapat diubah setelah ditetapkan. Anda dapat menemukan ID kelompok sumber daya di konsol Resource Management.

Tidak ada

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

Tetapkan hostname untuk Service

Anotasi: Beberapa, seperti yang ditunjukkan pada tabel berikut.

Anotasi

Deskripsi

Default

Versi CCM yang didukung

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

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

Tidak ada

v1.9.3 dan yang lebih baru

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

Menentukan hostname untuk Service. Hostname harus sesuai dengan konvensi penamaan DNS.

Perhatikan hal berikut:

  • Setelah Anda menambahkan anotasi ini, EXTERNAL-IP Service berubah dari alamat IP CLB default menjadi ${your_service_hostname}. Saat Anda mengakses alamat IP CLB dari dalam kluster, trafik diarahkan melalui instans CLB lalu diteruskan kembali ke kluster.

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

  • Anotasi ini tidak secara otomatis membuat catatan DNS. Anda harus membuat catatan DNS A atau CNAME secara manual yang mengarahkan hostname ke alamat IP instans CLB. Untuk informasi selengkapnya tentang nama domain, lihat Apa itu Alibaba Cloud Domains?.

Tidak ada

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/TCP,443/TCP   10s

Buat load balancer bayar sesuai konsumsi

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

Deskripsi

Default

Versi CCM yang didukung

Metode penagihan instans. Nilai yang valid:

  • PayBySpec: Nilai default. Ditagih berdasarkan spesifikasi.

  • PayByCLCU: Ditagih berdasarkan konsumsi.

Penting

Anda tidak dapat menetapkan spesifikasi untuk instans load balancer yang ditagih berdasarkan konsumsi. Nilai PayByCLCU tidak dapat digunakan bersama anotasi service.beta.kubernetes.io/alibaba-cloud-loadbalancer-spec.

PayBySpec

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

Aksi listener umum

Konfigurasikan persistensi sesi TCP

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

Deskripsi

Default

Versi CCM yang didukung

Menentukan waktu persistensi sesi untuk listener TCP. Jika instans load balancer memiliki beberapa listener TCP, pengaturan ini berlaku untuk semuanya secara default.

Nilainya dalam detik dan berkisar antara 0 hingga 3600. Nilai default adalah 0, yang menonaktifkan persistensi sesi. Untuk informasi selengkapnya, lihat CreateLoadBalancerTCPListener.

0

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

Konfigurasikan sesi lengket (insert cookie)

Fitur ini dikonfigurasi menggunakan beberapa anotasi, seperti yang ditunjukkan pada tabel berikut. Untuk menggunakan metode insert cookie, tiga anotasi ini wajib digunakan.

  • Fitur ini hanya berlaku untuk instans load balancer dengan listener HTTP atau HTTPS.

  • Secara default, pengaturan sesi lengket ini berlaku untuk semua listener HTTP dan HTTPS yang dikonfigurasi.

Anotasi

Deskripsi

Default

Versi CCM yang didukung

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

Mengaktifkan atau menonaktifkan sesi lengket. Pengaturan ini hanya berlaku untuk listener HTTP dan HTTPS. Nilai yang valid:

  • on

  • off

Untuk informasi selengkapnya, lihat CreateLoadBalancerHTTPListener dan CreateLoadBalancerHTTPSListener.

off

v1.9.3 dan yang lebih baru

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

Menentukan metode penanganan cookie. Pengaturan ini hanya efektif untuk listener HTTP dan HTTPS. Anotasi ini wajib digunakan saat service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-session diatur ke on. Nilai yang valid:

  • insert: Menyisipkan cookie.

  • server: Menulis ulang cookie.

Untuk informasi selengkapnya, lihat CreateLoadBalancerHTTPListener dan CreateLoadBalancerHTTPSListener.

Tidak ada

v1.9.3 dan yang lebih baru

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

Timeout cookie dalam detik. Rentang nilai yang valid adalah 1 hingga 86.400. Anotasi 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.

Untuk informasi selengkapnya, lihat CreateLoadBalancerHTTPListener dan CreateLoadBalancerHTTPSListener.

Tidak ada

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 berisi huruf ASCII dan angka. Tidak boleh berisi koma (,), titik koma (;), atau spasi, dan tidak boleh dimulai dengan tanda dolar ($).

Anotasi 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.

Tidak ada

v1.9.3 dan yang lebih baru

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

Menentukan port listener yang diterapkan pengaturan sesi lengket. Secara default, pengaturan berlaku untuk semua listener. Pisahkan beberapa entri dengan koma (,). Contoh: https:443,http:80.

Tidak ada

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

Konfigurasikan daftar kontrol akses

Catatan: Tiga anotasi pada tabel berikut wajib digunakan.

Sebelum menggunakan anotasi ini, buat daftar kontrol akses di konsol Classic Load Balancer (CLB) dan catat ID-nya.

Anotasi

Deskripsi

Default

Versi yang didukung

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

Menentukan apakah akan mengaktifkan kontrol akses. Nilai yang valid:

  • on

  • off

off

v1.9.3.164-g2105d2e-aliyun dan yang lebih baru

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

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

Tidak ada

v1.9.3.164-g2105d2e-aliyun dan yang lebih baru

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

Jenis kontrol akses. Nilai yang mungkin:

  • white: Daftar putih yang hanya meneruskan permintaan dari alamat IP atau rentang alamat IP dalam daftar kontrol akses yang dipilih. Daftar putih cocok untuk skenario di mana aplikasi hanya dapat diakses dari alamat IP tertentu. Menggunakan daftar putih dapat menimbulkan risiko bisnis. Jika Anda mengaktifkan daftar putih tetapi daftar kontrol akses kosong, listener akan meneruskan semua permintaan.

  • black: Daftar hitam yang memblokir semua permintaan dari alamat IP atau rentang alamat IP dalam daftar kontrol akses yang dipilih. Daftar hitam cocok untuk skenario di mana Anda ingin membatasi akses dari alamat IP tertentu. Jika Anda mengaktifkan daftar hitam tetapi daftar kontrol akses kosong, semua permintaan akan diteruskan.

Tidak ada

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}"
    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

Konfigurasikan penerusan port untuk load balancer

Penerusan port mengalihkan permintaan dari port HTTP ke port HTTPS.

Anotasi: Tiga anotasi berikut wajib digunakan.

Anotasi

Deskripsi

Default

Versi CCM yang didukung

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

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

Tidak ada

v1.9.3 dan yang lebih baru

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

ID sertifikat Alibaba Cloud.

Masuk ke konsol CLB dan lihat ID sertifikat pada halaman Certificates.

Catatan

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

Tidak ada

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, contohnya 80:443.

Tidak ada

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

Algoritma penjadwalan load balancer

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

Deskripsi

Default

Versi yang didukung

Algoritma penjadwalan. Nilai yang valid:

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

  • rr: round robin. Server backend menerima permintaan secara berurutan.

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:
  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

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

Deskripsi

Default

Versi CCM yang didukung

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

Tidak ada

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

Anotasi: Untuk anotasi yang diperlukan, lihat tabel berikut.

Lapisan CLB mendekripsi permintaan HTTPS dan mengirimkannya ke Pod backend sebagai permintaan HTTP.

Anotasi

Deskripsi

Default

Versi CCM yang didukung

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

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

Tidak ada

v1.9.3 dan yang lebih baru

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

ID sertifikat Alibaba Cloud.

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

Catatan

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

Tidak ada

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

Buat listener dengan pemeriksaan kesehatan

Konfigurasikan pemeriksaan kesehatan TCP

Anotasi: Tabel berikut mencantumkan anotasi yang diperlukan.

Secara default, pemeriksaan kesehatan diaktifkan untuk port TCP.

Anotasi

Deskripsi

Default

Versi CCM yang didukung

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

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

  • on

  • off

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

Untuk informasi selengkapnya, lihat CreateLoadBalancerTCPListener.

tcp

v1.9.3 dan yang lebih baru

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

Waktu tunggu respons pemeriksaan kesehatan, dalam detik. Jika server backend tidak merespons dalam periode ini, pemeriksaan kesehatan gagal. Nilai yang 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, pengaturan pertama tidak berlaku dan timeout diatur ke nilai yang terakhir. Untuk informasi selengkapnya, lihat CreateLoadBalancerTCPListener.

5

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 server backend dari fail menjadi success.

Nilai yang valid: 2–10. Untuk informasi selengkapnya, lihat CreateLoadBalancerTCPListener.

3

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 server backend dari success menjadi fail. Nilai yang valid: 2–10. Untuk informasi selengkapnya, lihat CreateLoadBalancerTCPListener.

3

v1.9.3 dan yang lebih baru

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

Interval antar pemeriksaan kesehatan, dalam detik. Nilai yang valid: 1–50. Untuk informasi selengkapnya, lihat CreateLoadBalancerTCPListener.

2

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

Konfigurasikan pemeriksaan kesehatan UDP

Anotasi: Beberapa, seperti yang ditunjukkan pada tabel berikut. Semua anotasi berikut wajib digunakan.

Secara default, pemeriksaan kesehatan diaktifkan untuk port UDP.

Anotasi

Deskripsi

Default

Versi CCM yang didukung

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

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

  • on

  • off

on

v2.6.0 dan yang lebih baru

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

Timeout respons untuk pemeriksaan kesehatan. Parameter ini berlaku untuk listener UDP. Jika server backend gagal merespons dalam timeout ini, pemeriksaan kesehatan gagal. Satuan: detik. Rentang nilai: [1, 300].

Jika nilai service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout kurang dari nilai service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval, pengaturan pertama tidak berlaku, dan timeout diatur ke nilai yang terakhir. Untuk informasi selengkapnya, lihat CreateLoadBalancerUDPListener.

5

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 server backend dari fail menjadi success.

Rentang nilai: [2, 10]. Untuk informasi selengkapnya, lihat CreateLoadBalancerUDPListener.

3

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 server backend dari success menjadi fail. Rentang nilai: [2, 10]. Untuk informasi selengkapnya, lihat CreateLoadBalancerUDPListener.

3

v1.9.3 dan yang lebih baru

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

Interval antar pemeriksaan kesehatan. Satuan: detik. Rentang nilai: [1, 50]. Untuk informasi selengkapnya, lihat CreateLoadBalancerUDPListener.

2

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

Nonaktifkan pemeriksaan kesehatan untuk TCP dan UDP

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

Deskripsi

Default

Versi CCM yang didukung

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

  • on

  • off

on

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

Konfigurasikan pemeriksaan kesehatan HTTP

Anotasi: Beberapa, seperti yang ditunjukkan pada tabel berikut.

Anotasi

Deskripsi

Default

Versi CCM yang didukung

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

Nilai yang valid:

  • on: Nilai default untuk listener TCP adalah on dan tidak dapat diubah.

  • off: Nilai default untuk listener HTTP adalah off.

off

v1.9.3 dan yang lebih baru

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

Protokol untuk pemeriksaan kesehatan. Nilai yang valid:

  • tcp

  • http

Untuk informasi selengkapnya, lihat CreateLoadBalancerHTTPListener.

tcp

v1.9.3 dan yang lebih baru

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

Jalur URI untuk pemeriksaan kesehatan. Anotasi ini hanya diperlukan untuk pemeriksaan kesehatan HTTP.

Tidak ada

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 nilai dengan koma. Nilai yang valid:

  • http_2xx

  • http_3xx

  • http_4xx

  • http_5xx

Untuk informasi selengkapnya, lihat CreateLoadBalancerHTTPListener.

http_2xx

v1.9.3 dan yang lebih baru

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

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

  • $_ip: Gunakan IP privat server backend. Ini juga merupakan perilaku default jika anotasi ini tidak ditentukan.

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

Untuk informasi selengkapnya, lihat CreateLoadBalancerHTTPListener.

Tidak ada

v1.9.3 dan yang lebih baru

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

Waktu, dalam detik, untuk menunggu respons pemeriksaan kesehatan HTTP. Jika tidak ada respons dalam periode ini, pemeriksaan kesehatan gagal.

Satuan: 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, service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-timeout tidak berlaku dan timeout diatur ke nilai service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval.

Untuk informasi selengkapnya, lihat CreateLoadBalancerHTTPListener.

Tidak ada

v1.9.3 dan yang lebih baru

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

Jumlah pemeriksaan kesehatan berhasil berturut-turut yang diperlukan sebelum server backend dianggap sehat (status berubah dari fail menjadi success).

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

3

v1.9.3 dan yang lebih baru

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

Jumlah pemeriksaan kesehatan gagal berturut-turut yang diperlukan sebelum server backend dianggap tidak sehat (status berubah dari success menjadi fail). Nilai yang valid: 2 hingga 10. Untuk informasi selengkapnya, lihat CreateLoadBalancerHTTPListener.

3

v1.9.3 dan yang lebih baru

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

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

2

v1.9.3 dan yang lebih baru

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

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

Tidak ada

v1.9.3 dan yang lebih baru

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

Metode HTTP yang digunakan untuk pemeriksaan kesehatan. Nilai yang valid:

  • head

  • get

Tidak ada

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

Pengurasan koneksi

Anotasi: Beberapa, seperti yang ditunjukkan pada tabel berikut. Semua anotasi ini wajib digunakan.

Hanya TCP dan UDP yang didukung.

Anotasi

Deskripsi

Default

Versi CCM yang didukung

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

Mengaktifkan atau menonaktifkan pengurasan koneksi. Nilai yang valid:

  • on

  • off

Tidak ada

v2.0.1 dan yang lebih baru

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

Menetapkan timeout pengurasan koneksi dalam detik. Rentang nilai yang valid adalah 10 hingga 900.

Tidak ada

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

Konfigurasikan header permintaan tambahan untuk listener

Konfigurasi: Gunakan anotasi pada tabel berikut untuk mengonfigurasi fitur ini.

Fitur ini hanya mendukung listener HTTP dan HTTPS.

Anotasi

Deskripsi

Default

Versi CCM yang didukung

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

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

Tidak ada

v1.9.3 dan yang lebih baru

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

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

  • on

  • off

off

v2.1.0 dan yang lebih baru

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

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

  • on

  • off

off

v2.9.1 dan yang lebih baru

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

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

  • on

  • off

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

Tetapkan timeout idle untuk listener

Anotasi: Lihat tabel berikut.

Fitur ini hanya mendukung listener yang menggunakan protokol HTTP atau HTTPS.

Anotasi

Deskripsi

Default

Versi CCM yang didukung

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

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

Tidak ada

v1.9.3 dan yang lebih baru

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

Menentukan timeout idle untuk listener. Satuan: detik. Nilai yang valid: [1, 60].

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

Nonaktifkan HTTP/2 untuk listener

Anotasi: Beberapa anotasi digunakan, seperti yang ditunjukkan pada tabel berikut.

Fitur ini hanya tersedia untuk listener HTTPS.

Anotasi

Deskripsi

Default

Versi CCM yang didukung

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

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

Tidak ada

v1.9.3 dan yang lebih baru

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

ID sertifikat di Alibaba Cloud.

Masuk ke Konsol CLB dan temukan ID sertifikat di halaman Certificates.

Catatan

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

Tidak ada

v1.9.3.164-g2105d2e-aliyun dan yang lebih baru

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

Mengaktifkan atau menonaktifkan fitur HTTP/2. Nilai yang valid:

  • on

  • off

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

Timeout permintaan untuk listener

Anotasi: Anotasi yang diperlukan tercantum pada tabel berikut.

Fitur ini hanya mendukung listener yang menggunakan protokol HTTP atau HTTPS.

Anotasi

Deskripsi

Default

Versi CCM yang didukung

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

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

Tidak ada

v1.9.3 dan yang lebih baru

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

Menentukan timeout permintaan dalam detik. Nilainya harus antara 1 dan 180.

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

60

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

Tentukan timeout koneksi

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

Hanya listener TCP yang didukung.

Deskripsi

Default

Versi CCM yang didukung

Menentukan timeout koneksi dalam detik. Nilainya harus bilangan bulat dari 10 hingga 900. Untuk informasi selengkapnya, lihat CreateLoadBalancerTCPListener.

Tidak ada

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

Konfigurasikan kebijakan keamanan listener

Anotasi: Lihat tabel berikut untuk anotasi yang diperlukan.

Hanya protokol HTTPS yang didukung.

Anotasi

Deskripsi

Default

Versi CCM yang didukung

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

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

Tidak ada

v1.9.3 dan yang lebih baru

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

Menentukan ID sertifikat Alibaba Cloud.

Di konsol SLB, temukan ID sertifikat di halaman Certificates.

Catatan

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

Tidak ada

v1.9.3.164-g2105d2e-aliyun dan yang lebih baru

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

Menentukan kebijakan keamanan, yang menentukan versi protokol TLS dan paket sandi yang didukung untuk listener 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

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

Konfigurasikan TCP dan UDP

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

Konfigurasikan Proxy Protocol untuk listener TCP dan UDP

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

Deskripsi

Default

Versi yang didukung

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

  • on

  • off

Penting

Fitur ini tidak mendukung migrasi mulus. Mengaktifkan atau menonaktifkan Proxy Protocol memerlukan peningkatan layanan, menyebabkan gangguan layanan. Konfigurasikan pengaturan ini dengan hati-hati.

off

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

Gunakan kembali grup server virtual yang sudah ada

Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vgroup-port. Anotasi ini memungkinkan Anda menggunakan kembali grup server virtual yang sudah ada. Ini hanya berlaku saat Anda menggunakan kembali instans CLB yang sudah ada. Untuk contoh detail, lihat Deploy Services across clusters by reusing an existing load balancer.

Tetapkan bobot trafik Service

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

Saat beberapa Service menggunakan kembali instans CLB yang sama, gunakan anotasi ini untuk menetapkan bobot trafik untuk Service saat ini. Pengaturan ini hanya berlaku saat Anda menggunakan kembali grup server virtual yang sudah ada. Untuk contoh detail, lihat Deploy Services across clusters by reusing an existing load balancer.

Lewati 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 di grup server virtual selama sinkronisasi Service. Hal ini memungkinkan Anda mengelola bobot server backend secara manual. 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