全部产品
Search
文档中心

Container Service for Kubernetes:Mengonfigurasi instans NLB menggunakan anotasi

更新时间:Nov 21, 2025

Saat menggunakan instans Network Load Balancer (NLB) untuk sebuah Service, Anda dapat memanfaatkan anotasi dalam file YAML untuk mengonfigurasi fitur load balancing lanjutan, seperti menentukan jenis jaringan instans NLB, mengaktifkan mode baca-saja konfigurasi, dan mengonfigurasi otentikasi timbal balik. Topik ini menjelaskan anotasi yang dapat digunakan dalam file YAML Service untuk melakukan konfigurasi umum pada instans NLB, listener, dan grup server.

Indeks

Kategori

Kategori fitur

Tautan konfigurasi

Prasyarat

Operasi umum pada instans NLB

Buat load balancer

Konfigurasi instans

Konfigurasi keamanan

Operasi umum pada listener

Buat listener

Konfigurasi listener

Konfigurasi keamanan

Operasi umum pada grup server

Konfigurasi server

Pertimbangan

  • Versi kluster minimal 1.24 dan versi Cloud Controller Manager (CCM) minimal 2.5.0. Untuk meningkatkan kluster, lihat Tingkatkan kluster ACK secara manual. Untuk meningkatkan komponen, lihat Kelola komponen.

  • Dalam definisi Service, atur spec.loadBalancerClass ke alibabacloud.com/nlb. Jika parameter ini tidak ditentukan, instans Classic Load Balancer (CLB) akan dibuat secara default.

  • Setelah Service dibuat, nilai spec.loadBalancerClass tidak dapat diubah. Anda tidak dapat mengonversi sumber daya CLB menjadi sumber daya NLB, atau sebaliknya.

  • Instans NLB tidak dapat dikelola melalui konsol ACK. Anda harus menggunakan perintah kubectl.

Operasi umum pada instans NLB

Buat instans NLB yang menghadap publik

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

Deskripsi

Versi CCM yang didukung

Menentukan zona instans NLB.

Anda dapat masuk ke konsol NLB untuk melihat wilayah dan zona yang didukung oleh NLB. Diperlukan minimal dua zona. Pisahkan beberapa zona dengan koma (,), misalnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.

v2.5.0 dan yang lebih baru

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

Buat instans NLB privat

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

Deskripsi

Versi CCM yang didukung

Menentukan instans NLB sebagai instans NLB privat. Anda dapat mengubah nilai anotasi ini untuk beralih antara instans NLB yang menghadap publik dan instans NLB privat. Nilai yang valid:

  • internet: instans NLB yang menghadap publik.

  • intranet: instans NLB privat.

Nilai default: internet

Anda dapat masuk ke konsol NLB untuk melihat wilayah dan zona yang didukung oleh NLB. Diperlukan minimal dua zona. Pisahkan beberapa zona dengan koma (,), misalnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.

v2.5.0 dan yang lebih baru

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type: "intranet"
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

Tentukan nama load balancer

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

Deskripsi

Versi CCM yang didukung

Menentukan 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 (-).

v2.5.0 dan yang lebih baru

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-name: "${your-nlb-name}" # Nama instans NLB.
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

Tentukan kelompok sumber daya load balancer

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

Deskripsi

Versi CCM yang didukung

Menentukan kelompok sumber daya tempat load balancer berada. ID kelompok sumber daya tidak dapat diubah setelah ditentukan.

Anda dapat masuk ke platform Resource Management Alibaba Cloud untuk mencari ID kelompok sumber daya.

v2.5.0 dan yang lebih baru

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-resource-group-id:  "${your-resource-group-id}" # ID kelompok sumber daya.
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

Buat instance NLB dual-stack

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

Deskripsi

Versi CCM yang didukung

Menentukan versi IP instans NLB. Versi IP tidak dapat diubah setelah instans NLB dibuat. kube-proxy kluster harus bekerja dalam mode IPVS. Nilai yang valid:

  • ipv4: IPv4.

  • DualStack: dual-stack. Mendukung IPv4 dan IPv6.

    • Dua vSwitch yang ditentukan dalam service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps harus mengaktifkan IPv6.

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

Nilai default: ipv4

v2.5.0 dan yang lebih baru

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip-version: "DualStack"
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  sessionAffinity: None
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

Tambahkan tag tambahan ke load balancer

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

Deskripsi

Versi CCM yang didukung

Memungkinkan Anda menambahkan tag tambahan. 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

Jika Anda menambahkan anotasi ini ke Service untuk menentukan tag tambahan, modifikasi yang dilakukan pada tag instans load balancer terkait di konsol mungkin akan ditimpa.

v2.5.0 dan yang lebih baru

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-additional-resource-tags: "Key1=Value1,Key2=Value2"
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  sessionAffinity: None
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

Gunakan kembali load balancer yang sudah ada

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

Anotasi

Deskripsi

Versi CCM yang didukung

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

ID load balancer yang sudah ada.

v2.5.0 dan yang lebih baru

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

Menentukan apakah akan menyinkronkan konfigurasi listener NLB berdasarkan Service. Nilai yang valid:

  • true: CCM membuat, memperbarui, dan menghapus listener NLB berdasarkan konfigurasi Service.

  • false: CCM tidak melakukan operasi apa pun pada listener NLB.

Nilai default: false

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id: "${your-nlb-id}" # ID instans NLB.
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners: "true"
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  sessionAffinity: None
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

Kaitkan instans Internet Shared Bandwidth

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

Deskripsi

Versi CCM yang didukung

ID instans Internet Shared Bandwidth yang akan dikaitkan.

Anda dapat masuk ke konsol VPC untuk mencari ID instans Internet Shared Bandwidth.

v2.9.1 dan yang lebih baru

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-bandwidth-package-id: "cbwp-xxxxxxxxxx" 
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  sessionAffinity: None
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

Tentukan jenis jaringan alamat IPv6

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

Anotasi

Deskripsi

Versi CCM yang didukung

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

Menentukan versi IP instans NLB. Versi IP tidak dapat diubah setelah instans NLB dibuat. kube-proxy kluster harus bekerja dalam mode IPVS. Nilai yang valid:

  • ipv4: IPv4.

  • DualStack: dual-stack. Mendukung IPv4 dan IPv6.

    • Dua vSwitch yang ditentukan dalam service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps harus mengaktifkan IPv6.

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

Nilai default: ipv4

v2.5.0 dan yang lebih baru

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

Menentukan jenis jaringan alamat IPv6 instans NLB. Nilai yang valid:

  • intranet: IPv6 privat

  • internet: IPv6 publik

Nilai default: intranet

Catatan

Saat Anda mengaktifkan IPv6 publik, gateway IPv6 harus ada di VPC tempat instans NLB ditempatkan. Untuk informasi selengkapnya, lihat Buat dan kelola gateway IPv6.

v2.9.1 dan yang lebih baru

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip-version: "DualStack"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ipv6-address-type: internet # Tentukan jenis jaringan alamat IPv6 sebagai publik.
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  sessionAffinity: None
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

Pertahankan load balancer yang dibuat secara otomatis saat Service dihapus

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

Deskripsi

Versi CCM yang didukung

Saat Anda menghapus Service LoadBalancer, instans NLB yang dibuat oleh Service dipertahankan, dan tag kubernetes.do.not.delete dan ack.aliyun.com dihapus dari instans NLB dan grup server. Server yang ada di grup server dipertahankan.

Saat fitur ini diaktifkan, event Peringatan bertipe PreservedOnDelete dihasilkan selama sinkronisasi Service. Setelah Anda mengonfigurasi anotasi ini, periksa apakah event ini ada untuk memastikan fitur telah diaktifkan.

Nilai valid:

  • Tidak kosong: mengaktifkan fitur retensi.

  • Kosong atau tidak diatur: menonaktifkan fitur retensi.

Penting

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

v2.10.0 dan yang lebih baru

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-preserve-lb-on-delete: "true"
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

Operasi umum pada listener

Konfigurasi grup keamanan untuk listener

Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-security-group-ids

Deskripsi

Versi CCM yang didukung

Mengonfigurasi grup keamanan untuk listener. Pisahkan beberapa nilai dengan koma (,), misalnya, sg-aaaaa,sg-bbbbb.

v2.6.0 dan yang lebih baru

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-security-group-ids: "sg-aaaaa,sg-bbbbb" # Pisahkan beberapa grup keamanan dengan koma (,).
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

Konfigurasi protokol TCP dan UDP untuk listener

Deskripsi

Versi CCM yang didukung

Fitur ini mensyaratkan versi kluster Kubernetes adalah 1.24 atau lebih baru. Untuk informasi selengkapnya tentang cara meningkatkan versi kluster, lihat Tingkatkan kluster ACK.

Tidak berlaku

apiVersion: v1
kind: Service
metadata:
  annotations:
      service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: udp
    port: 80
    protocol: UDP
    targetPort: 81
  selector:
    app: nginx
  sessionAffinity: None
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

Buat listener TCP

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  sessionAffinity: None
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

Buat listener UDP

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: udp
    port: 80
    protocol: UDP
    targetPort: 80
  selector:
    app: nginx
  sessionAffinity: None
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

Buat listener TCP/SSL

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

Anotasi

Deskripsi

Versi CCM yang didukung

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

Menetapkan jenis protokol listener. Pisahkan beberapa nilai dengan koma (,), misalnya, TCP:80,TCPSSL:443.

v2.5.0 dan yang lebih baru

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

ID sertifikat server. Anda dapat masuk ke konsol Layanan Manajemen Sertifikat Digital dan membuat serta melihat sertifikat di halaman SSL Certificates.

Gambar berikut menunjukkan contohnya:

image

Penting

Listener TCP/SSL tidak dapat dikaitkan dengan grup server yang memiliki fitur persistensi alamat IP klien diaktifkan. Artinya, Anda tidak dapat mengonfigurasi anotasi service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "tcpssl:${port}" dan service.beta.kubernetes.io/alibaba-cloud-loadbalancer-preserve-client-ip: "on" secara bersamaan. Untuk informasi selengkapnya, lihat Dapatkan alamat IP asal klien menggunakan instans NLB.

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "tcpssl:443"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${CertIdentifier}"
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 80
  selector:
    app: nginx
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

Konfigurasi range port listener

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

Deskripsi

Versi CCM yang didukung

Fitur ini hanya didukung untuk plugin jaringan Terway.

Dengan mengonfigurasi range alamat listener untuk penerusan semua port NLB, Anda dapat mendengarkan range port tertentu dan meneruskan trafik ke port yang sesuai di server backend.

Formatnya adalah Range port:Port Service. Pisahkan beberapa nilai dengan koma (,), misalnya, 80-100:80,400-500:443. Beberapa port dan range port dengan protokol yang sama tidak boleh tumpang tindih.

targetPort adalah port pemeriksaan kesehatan server backend. Nilainya harus berupa bilangan bulat dari 1 hingga 65535.

v2.11.4 dan yang lebih baru

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
    # Konfigurasi listener untuk range port 80-100 dan 400-500.
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-listener-port-range: "80-100:80,400-500:443"
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    # targetPort adalah port pemeriksaan kesehatan server backend dan harus berupa bilangan bulat.
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 80
  selector:
    app: nginx
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

Aktifkan otentikasi timbal balik

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

Anotasi

Deskripsi

Versi CCM yang didukung

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

Menetapkan jenis protokol listener. Pisahkan beberapa nilai dengan koma (,), misalnya, TCP:80,TCPSSL:443.

v2.5.0 dan yang lebih baru

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

ID sertifikat server. Anda dapat masuk ke konsol Layanan Manajemen Sertifikat Digital dan membuat serta melihat sertifikat di halaman SSL Certificates.

Gambar berikut menunjukkan contohnya:

image

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

ID sertifikat CA. Anda dapat masuk ke konsol Layanan Manajemen Sertifikat Digital dan melihat detail sertifikat di halaman PCA Certificate Management.

image

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

Menentukan apakah akan mengaktifkan otentikasi timbal balik. Nilai valid:

  • on: mengaktifkan fitur.

  • off: menonaktifkan fitur.

Nilai default: off

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "tcpssl:443"   
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${CertIdentifier}" 
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cacert-id: "${your-cacert-id}" 
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cacert: "on"
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 80
  selector:
    app: nginx
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

Konfigurasikan kebijakan keamanan TLS

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

Anotasi

Deskripsi

Versi CCM yang didukung

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

Menetapkan jenis protokol listener. Pisahkan beberapa nilai dengan koma (,), misalnya, TCP:80,TCPSSL:443.

v2.5.0 dan yang lebih baru

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

ID sertifikat server. Anda dapat masuk ke konsol Layanan Manajemen Sertifikat Digital dan membuat serta melihat sertifikat di halaman SSL Certificates.

Gambar berikut menunjukkan contohnya:

image

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

ID kebijakan keamanan. Kebijakan keamanan sistem dan kebijakan keamanan kustom didukung. 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

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "tcpssl:443"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${CertIdentifier}" 
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-tls-cipher-policy: "tls_cipher_policy_1_0"
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 80
  selector:
    app: nginx
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

Konfigurasikan Proxy Protocol

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

Deskripsi

Versi CCM yang didukung

Menentukan apakah akan menggunakan Proxy Protocol untuk meneruskan alamat IP klien ke server backend. Nilai yang valid:

  • on: mengaktifkan fitur.

  • off: menonaktifkan fitur.

Nilai default: off

Penting

Sebelum mengaktifkan Proxy Protocol, periksa apakah Proxy Protocol v2 diaktifkan untuk layanan backend. Jika tidak diaktifkan, akses mungkin gagal. Konfigurasikan parameter ini dengan hati-hati.

v2.5.0 dan yang lebih baru

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-proxy-protocol: "on"
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

Sertakan informasi tambahan dalam Proxy Protocol

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

Anotasi

Deskripsi

Versi CCM yang didukung

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

Menentukan apakah akan menggunakan Proxy Protocol untuk meneruskan alamat IP klien ke server backend. Nilai yang valid:

  • on: mengaktifkan fitur.

  • off: menonaktifkan fitur.

Nilai default: off

Penting

Sebelum mengaktifkan Proxy Protocol, periksa apakah Proxy Protocol v2 diaktifkan untuk layanan backend. Jika tidak diaktifkan, akses mungkin gagal. Konfigurasikan parameter ini dengan hati-hati.

v2.5.0 dan yang lebih baru

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ppv2-pvl-vpc-id-enabled

Menentukan apakah akan menggunakan Proxy Protocol untuk meneruskan VpcId ke server backend. Nilai yang valid:

  • on: mengaktifkan fitur.

  • off: menonaktifkan fitur.

Nilai default: off

v2.9.1 dan yang lebih baru

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ppv2-pvl-ep-id-enabled

Menentukan apakah akan menggunakan Proxy Protocol untuk meneruskan PrivateLinkEpId ke server backend. Nilai yang valid:

  • on: mengaktifkan fitur.

  • off: menonaktifkan fitur.

Nilai default: off

v2.9.1 dan yang lebih baru

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ppv2-pvl-eps-id-enabled

Menentukan apakah akan menggunakan Proxy Protocol untuk meneruskan PrivateLinkEpsId ke server backend. Nilai yang valid:

  • on: mengaktifkan fitur.

  • off: menonaktifkan fitur.

Nilai default: off

v2.9.1 dan yang lebih baru

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-proxy-protocol: "on"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ppv2-pvl-ep-id-enabled: "on"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ppv2-pvl-eps-id-enabled: "on"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ppv2-pvl-vpc-id-enabled: "on"
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

Atur jumlah maksimum koneksi baru per detik untuk listener

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

Deskripsi

Versi CCM yang didukung

Jumlah maksimum koneksi baru per detik untuk instans NLB. Nilainya harus berada dalam rentang 0 hingga 1.000.000. Nilai 0 berarti tidak ada batasan.

v2.5.0 dan yang lebih baru

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cps: "100"
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

Atur periode timeout koneksi idle untuk listener

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

Deskripsi

Versi CCM yang didukung

Periode timeout koneksi idle. Satuan: detik. Nilainya harus berada dalam rentang 10 hingga 900.

Nilai default: 900

v2.5.0 dan yang lebih baru

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-idle-timeout: "60"
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

Konfigurasikan kebijakan ALPN

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

Anotasi

Deskripsi

Versi CCM yang didukung

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

Menetapkan jenis protokol listener. Pisahkan beberapa nilai dengan koma (,), misalnya, TCP:80,TCPSSL:443.

v2.5.0 dan yang lebih baru

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

ID sertifikat server. Anda dapat masuk ke konsol Layanan Manajemen Sertifikat Digital dan membuat serta melihat sertifikat di halaman SSL Certificates.

Gambar berikut menunjukkan contohnya:

image

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

Menentukan apakah akan mengaktifkan Application-Layer Protocol Negotiation (ALPN). Nilai yang valid:

  • on: mengaktifkan fitur.

  • off: menonaktifkan fitur.

Nilai default: off

v2.10.0 dan yang lebih baru

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-alpn-policy

Kebijakan ALPN. Nilai valid:

  • HTTP1Only: hanya menegosiasikan protokol HTTP/1.x. Prioritasnya adalah HTTP/1.1 > HTTP/1.0.

  • HTTP2Only: hanya menegosiasikan protokol HTTP/2.0.

  • HTTP2Optional: memprioritaskan protokol HTTP/1.x tetapi juga menerima protokol HTTP/2.0. Prioritasnya adalah HTTP/1.1 > HTTP/1.0 > HTTP/2.0.

  • HTTP2Preferred: memprioritaskan protokol HTTP/2 tetapi juga menerima protokol HTTP/1.x. Prioritasnya adalah HTTP/2.0 > HTTP/1.1 > HTTP/1.0.

Untuk informasi selengkapnya tentang nilai yang valid untuk opsi ini, lihat bidang AlpnPolicy dalam referensi API CreateListener.

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "tcpssl:443"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${CertIdentifier}" 
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-alpn: "on"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-alpn-policy: "HTTP1Only" 
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 80
  selector:
    app: nginx
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

Operasi umum pada grup server

Konfigurasi algoritma penjadwalan

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

Deskripsi

Versi CCM yang didukung

Algoritma penjadwalan. Nilai yang valid:

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

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

  • sch: Hash IP sumber. Permintaan dari alamat IP sumber yang sama didistribusikan ke server backend yang sama.

  • tch: Hash empat elemen. Permintaan didistribusikan ke server backend berdasarkan hash dari empat faktor: alamat IP sumber, alamat IP tujuan, port sumber, dan port tujuan. Ini memastikan bahwa permintaan dari aliran yang sama didistribusikan ke server backend yang sama.

  • wlc: jumlah koneksi paling sedikit dengan bobot. Selain bobot setiap server backend, jumlah koneksi ke setiap server backend juga dipertimbangkan. Jika server backend memiliki bobot yang sama, server backend dengan jumlah koneksi paling sedikit yang dipilih.

Nilai default: wrr

Untuk informasi selengkapnya tentang nilai yang valid untuk opsi ini, lihat bidang Scheduler dalam referensi API CreateServerGroup.

v2.5.0 dan yang lebih baru

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-scheduler: "sch"
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

Konfigurasikan drainase koneksi

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

Anotasi

Deskripsi

Versi CCM yang didukung

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

Menentukan apakah akan mengaktifkan pengurasan koneksi. Setelah Anda mengaktifkan fitur ini, perilaku berikut dilakukan saat server backend dihapus atau gagal dalam pemeriksaan kesehatan:

  • on: Koneksi yang ada diizinkan untuk ditransmisikan secara normal dalam periode waktu tertentu. Setelah periode timeout berakhir, koneksi diputus secara aktif untuk memastikan offline bisnis yang lancar.

  • off: Koneksi yang ada tidak diputus secara aktif. Mereka hanya diputus saat klien memutus secara aktif atau sesi koneksi persisten berakhir.

Nilai default: off

v2.5.0 dan yang lebih baru

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

Menetapkan periode timeout pengurasan koneksi.

  • Satuan: detik.

  • Nilainya harus berada dalam rentang 0 hingga 900. Nilai 0 berarti koneksi segera diputus.

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
    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:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

Aktifkan persistensi alamat IP klien

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

Deskripsi

Versi CCM yang didukung

Menentukan apakah akan mengaktifkan persistensi alamat IP klien. Nilai yang valid:

  • on: mengaktifkan fitur.

  • off: menonaktifkan fitur.

Nilai default: on

v2.5.0 dan yang lebih baru

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-preserve-client-ip: "on"
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

Konfigurasi pemeriksaan kesehatan TCP

Anotasi: Beberapa anotasi tersedia, seperti yang ditunjukkan pada tabel berikut. Untuk mengonfigurasi pemeriksaan kesehatan TCP, semua anotasi berikut diperlukan. Pemeriksaan kesehatan diaktifkan secara default untuk port TCP.

Anotasi

Deskripsi

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

Menentukan apakah akan mengaktifkan pemeriksaan kesehatan. Nilai valid:

  • on: Diaktifkan.

  • off: menonaktifkan pemeriksaan kesehatan.

Nilai default: on

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

Protokol pemeriksaan kesehatan. Nilai yang valid:

  • tcp

  • http

Nilai default: tcp

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

Port pada server yang digunakan untuk pemeriksaan kesehatan. Nilainya harus berada dalam rentang 0 hingga 65535. Nilai 0 berarti port server digunakan untuk pemeriksaan kesehatan.

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

Periode timeout maksimum untuk respons pemeriksaan kesehatan. Satuan: detik. Nilainya harus berada dalam rentang 1 hingga 300.

Nilai default: 5

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

Jumlah pemeriksaan kesehatan berhasil berturut-turut yang diperlukan sebelum status pemeriksaan kesehatan server berubah dari gagal menjadi berhasil. Nilainya harus berada dalam rentang 2 hingga 10.

Nilai default: 2

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

Jumlah pemeriksaan kesehatan gagal berturut-turut yang diperlukan sebelum status pemeriksaan kesehatan server berubah dari berhasil menjadi gagal. Nilainya harus berada dalam rentang 2 hingga 10.

Nilai default: 2

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

Interval pelaksanaan pemeriksaan kesehatan. Satuan: detik. Nilainya harus berada dalam rentang 1 hingga 50.

Nilai default: 10

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-flag: "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: "5"
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

Konfigurasi pemeriksaan kesehatan HTTP

Anotasi: Beberapa anotasi tersedia, seperti yang ditunjukkan pada tabel berikut. Untuk mengonfigurasi pemeriksaan kesehatan HTTP, semua anotasi berikut diperlukan. Secara default, pemeriksaan kesehatan diaktifkan untuk port TCP.

Anotasi

Deskripsi

Versi CCM yang didukung

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

Menentukan apakah akan mengaktifkan pemeriksaan kesehatan. Nilai valid:

  • on: Diaktifkan.

  • off: Dimatikan.

Nilai default: on

v2.5.0 dan yang lebih baru

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

Protokol pemeriksaan kesehatan. Nilai yang valid:

  • tcp

  • http

Nilai default: tcp

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

Jalur untuk pemeriksaan kesehatan. Jalur harus terdiri dari 1 hingga 80 karakter dan hanya dapat berisi huruf, angka, dan karakter khusus. Jalur harus dimulai dengan garis miring (/). Untuk informasi selengkapnya, lihat CreateServerGroup.

Catatan

Parameter ini hanya berlaku saat service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-type diatur ke HTTP.

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

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

  • $SERVER_IP: menggunakan alamat IP privat server backend

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

Catatan

Parameter ini hanya berlaku saat service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-type diatur ke HTTP.

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

Port pada server yang digunakan untuk pemeriksaan kesehatan. Nilainya harus berada dalam rentang 0 hingga 65535. Nilai 0 berarti port server digunakan untuk pemeriksaan kesehatan.

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

Periode timeout maksimum untuk respons pemeriksaan kesehatan. Satuan: detik. Nilainya harus berada dalam rentang 1 hingga 300.

Nilai default: 5

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

Jumlah pemeriksaan kesehatan berhasil berturut-turut yang diperlukan sebelum status pemeriksaan kesehatan server berubah dari gagal menjadi berhasil. Nilainya harus berada dalam rentang 2 hingga 10.

Nilai default: 2

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

Jumlah pemeriksaan kesehatan gagal berturut-turut yang diperlukan sebelum status pemeriksaan kesehatan server berubah dari berhasil menjadi gagal. Nilainya harus berada dalam rentang 2 hingga 10.

Nilai default: 2

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

Interval pelaksanaan pemeriksaan kesehatan. Satuan: detik. Nilainya harus berada dalam rentang 1 hingga 50.

Nilai default: 10

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

Metode pemeriksaan kesehatan. Nilai yang valid:

  • GET

  • HEAD

Catatan

Parameter ini hanya berlaku saat service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-type diatur ke HTTP.

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
    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-health-check-domain: "www.test.com"
    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-connect-timeout: "10"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval: "5"
    # Konfigurasi metode pemeriksaan kesehatan. Anotasi ini opsional.
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-method: "head"
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

Konfigurasi jenis grup server

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

Deskripsi

Versi CCM yang didukung

Mengonfigurasi jenis grup server. Nilai yang valid:

  • Ip: tipe alamat IP. Anda dapat langsung menambahkan server backend bertipe alamat IP.

  • Instance (default): tipe server. Anda dapat menambahkan instance bertipe ECS dan ENI.

Nilai default: Instance

Untuk informasi selengkapnya tentang jenis dan deskripsi grup server NLB, lihat Grup server NLB.

v2.8.0 dan yang lebih baru

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-server-group-type: "Ip"
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

Gunakan kembali grup server yang sudah ada

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

Anda dapat menggunakan kembali grup server yang sudah ada. Fitur ini hanya berfungsi saat Anda menggunakan kembali instans NLB yang sudah ada. Untuk informasi selengkapnya, lihat Sebarkan layanan lintas kluster dengan menggunakan kembali load balancer yang sudah ada.

Atur bobot Service untuk menerima trafik

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

Saat beberapa Service menggunakan kembali instans NLB yang sama, Anda dapat menggunakan anotasi ini untuk mengatur bobot trafik untuk Service saat ini. Anotasi ini hanya berfungsi saat Anda menggunakan kembali grup server yang sudah ada. Untuk informasi selengkapnya, lihat Sebarkan layanan lintas kluster dengan menggunakan kembali load balancer yang sudah ada.

Abaikan pembaruan bobot server backend

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

Deskripsi

Versi CCM yang didukung

Selama sinkronisasi Service, pembaruan bobot server backend dalam grup server dilewati. Konfigurasi ini berlaku untuk skenario di mana Anda perlu mengelola bobot server backend secara manual melalui 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-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ignore-weight-update: "on"
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer