全部产品
Search
文档中心

Container Service for Kubernetes:Konfigurasi Network Load Balancer (NLB) menggunakan anotasi

更新时间:Jan 23, 2026

Saat menggunakan Service dengan Network Load Balancer (NLB), Anda dapat memanfaatkan anotasi dalam file YAML untuk mengaktifkan fitur tambahan, seperti menentukan jenis jaringan NLB, mengaktifkan mode baca-saja konfigurasi, dan mengonfigurasi otentikasi timbal balik. Topik ini menjelaskan konfigurasi umum NLB yang dapat dilakukan melalui anotasi dalam file YAML Service, dikelompokkan berdasarkan resource: instans NLB, listener, dan grup server.

Indeks

Kategori

Kategori fitur

Tautan konfigurasi

Catatan

Operasi NLB umum

Create load balancer

Instance configuration

Secure configuration

Operasi listener umum

Create listeners

Listener configuration

Secure configuration

Operasi grup server umum

Server configuration

Catatan

  • Kluster ACK harus menggunakan versi 1.24 atau lebih baru, dan komponen Cloud Controller Manager (CCM) harus versi 2.5.0 atau lebih baru. Untuk informasi selengkapnya tentang cara meningkatkan versi kluster, lihat Upgrade kluster secara manual. Untuk informasi selengkapnya tentang cara meningkatkan komponen, lihat Kelola komponen.

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

  • Setelah Service dibuat, Anda tidak dapat mengubah spec.loadBalancerClass. Artinya, tipe load balancer tidak dapat diubah antara CLB dan NLB.

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

Operasi NLB umum

Buat NLB yang menghadap Internet

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

Deskripsi

Versi CCM yang didukung

Tentukan zona, Alamat IP pribadi, dan EIP untuk NLB. Formatnya adalah:

{zone}:{vSwitchID}:{private IP address}:{EIP instance ID}. Pisahkan beberapa konfigurasi dengan koma (,).

  • Zona dan ID vSwitch: Wajib. Tentukan minimal dua zona, seperti cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.

    Anda dapat melihat wilayah dan zona yang didukung oleh NLB di Konsol NLB.

  • Alamat IP pribadi: Opsional.

  • ID instans EIP: Opsional.

Zona dan ID vSwitch: v2.5.0 atau lebih baru

Alamat IP pribadi dan EIP: v2.12.1 atau 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}" # Contoh: 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 NLB internal

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

Deskripsi

Versi CCM yang didukung

Tentukan bahwa NLB bersifat internal. Anda dapat mengubah nilai anotasi ini untuk beralih antara NLB yang menghadap Internet dan NLB internal. Nilai yang valid:

  • internet: NLB yang menghadap Internet.

  • intranet: NLB internal.

Nilai default: internet

Anda dapat melihat wilayah dan zona yang didukung oleh NLB di Konsol NLB. Minimal diperlukan dua zona. Pisahkan beberapa zona dengan koma, misalnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.

v2.5.0 atau 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}" # Contoh: 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 Alamat IP pribadi load balancer

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

Deskripsi

Versi CCM yang didukung

Tentukan zona, Alamat IP pribadi, dan EIP untuk NLB. Formatnya adalah:

{zone}:{vSwitchID}:{private IP address}:{EIP instance ID}. Pisahkan beberapa konfigurasi dengan koma (,).

  • Zona dan ID vSwitch: Wajib. Tentukan minimal dua zona, seperti cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.

    Anda dapat melihat wilayah dan zona yang didukung oleh NLB di Konsol NLB.

  • Alamat IP pribadi: Opsional.

  • ID instans EIP: Opsional.

  • Zona dan ID vSwitch: v2.5.0 atau lebih baru

  • Alamat IP pribadi dan EIP: v2.12.1 atau lebih baru

apiVersion: v1
kind: Service
metadata:
  annotations:
    # Contoh: cn-hangzhou-k:vsw-i123456:10.1.0.1,cn-hangzhou-j:vsw-j654321:10.2.0.1.
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A}:${private-ipv4-A},${zone-B}:${vsw-B}:${private-ipv4-B}"
  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 ID instans EIP load balancer

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

Deskripsi

Versi CCM yang didukung

Tentukan zona, Alamat IP pribadi, dan EIP untuk NLB. Formatnya adalah:

{zone}:{vSwitchID}:{private IP address}:{EIP instance ID}. Pisahkan beberapa konfigurasi dengan koma (,).

  • Zona dan ID vSwitch: Wajib. Tentukan minimal dua zona, seperti cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.

    Anda dapat melihat wilayah dan zona yang didukung oleh NLB di Konsol NLB.

  • Alamat IP pribadi: Opsional.

  • ID instans EIP: Opsional.

Zona dan ID vSwitch: v2.5.0 atau lebih baru

Alamat IP pribadi dan EIP: v2.12.1 atau lebih baru

apiVersion: v1
kind: Service
metadata:
  annotations:
    # Jika tidak memerlukan Alamat IP pribadi, biarkan kolom Alamat IP pribadi kosong.
    # Contoh: cn-hangzhou-k:vsw-i123456::eip-12345,cn-hangzhou-j:vsw-j654321::eip-54321
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A}::${eip-A},${zone-B}:${vsw-B}::${eip-B}"
  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

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

v2.5.0 atau 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}" # Contoh: cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-name: "${your-nlb-name}" # Nama 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

Tentukan kelompok sumber daya tempat load balancer berada. Setelah Anda menentukan ID kelompok sumber daya, Anda tidak dapat mengubahnya.

Anda dapat mencari ID kelompok sumber daya di Konsol Resource Management Alibaba Cloud.

v2.5.0 atau 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}" # Contoh: 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 NLB dual-stack

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

Deskripsi

Versi CCM yang didukung

Menentukan versi protokol untuk NLB. Tipe IP tidak dapat diubah setelah pembuatan. Fitur ini memerlukan modus proxy kube-proxy kluster berupa 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 memiliki IPv6 yang diaktifkan.

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

Nilai default: ipv4

v2.5.0 atau 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}" # Contoh: 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

Tambahkan tag tambahan. Pisahkan beberapa tag dengan koma (,), misalnya, k1=v1,k2=v2. Di v2.10.0 atau lebih baru, Anda dapat memodifikasi tag untuk instans yang baru dibuat maupun yang digunakan kembali.

Penting

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

v2.5.0 atau 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}" # Contoh: 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 load balancer yang sudah ada

Anotasi: Multiple, as listed in the following table.

Anotasi

Deskripsi

Versi CCM yang didukung

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

Tentukan ID load balancer yang sudah ada.

v2.5.0 atau lebih baru

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

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

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

  • false: CCM tidak mengelola listener NLB.

Nilai default: false

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id: "${your-nlb-id}" # ID 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

Lampirkan paket Bandwidth Internet Bersama

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

Deskripsi

Versi CCM yang didukung

ID paket Bandwidth Internet Bersama.

Anda dapat mencari ID paket Bandwidth Internet Bersama di Konsol VPC.

v2.9.1 atau 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}" # Contoh: 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 IPv6 Internet atau internal

Anotasi: Multiple, as listed in the following table.

Anotasi

Deskripsi

Versi CCM yang didukung

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

Menentukan versi protokol untuk NLB. Tipe IP tidak dapat diubah setelah NLB dibuat. Fitur ini memerlukan modus proxy kube-proxy kluster berupa IPVS. Nilai yang valid:

  • ipv4: Menentukan tipe IPv4.

  • DualStack: Dual-stack, mendukung IPv4 dan IPv6.

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

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

Nilai default: ipv4

v2.5.0 atau lebih baru

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

Tentukan tipe jaringan IPv6 NLB. Nilai yang valid:

  • intranet: IPv6 internal

  • internet: IPv6 Internet

Nilai default: intranet

Catatan

Untuk mengaktifkan IPv6 Internet, gateway IPv6 harus ada di VPC tempat instans NLB berada. Untuk informasi selengkapnya, lihat Buat dan kelola gateway IPv6.

v2.9.1 atau 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}" # Contoh: 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 tipe jaringan IPv6 sebagai Internet.
  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 instans load balancer yang dibuat secara otomatis saat menghapus Service

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

Deskripsi

Versi CCM yang didukung

Saat Anda menghapus Service bertipe LoadBalancer, pertahankan instans NLB yang dibuat oleh Service dan hapus tag kubernetes.do.not.delete dan ack.aliyun.com 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 mengonfigurasi anotasi ini, periksa event tersebut untuk memastikan fitur telah diaktifkan.

Nilai yang valid:

  • Non-kosong: Aktifkan fitur pelestarian.

  • Kosong atau tidak diatur: Nonaktifkan fitur pelestarian.

Penting

Hapus Service, bukan ubah tipenya, untuk melakukan operasi ini. Jika tidak, Service mungkin salah dikaitkan kembali dengan NLB yang sebelumnya dipertahankan.

v2.10.0 atau 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}" # Contoh: 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 listener umum

Atur grup keamanan listener

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

Deskripsi

Versi CCM yang didukung

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

v2.6.0 atau 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}" # Contoh: 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 memerlukan versi kluster Kubernetes v1.24 atau lebih baru. Untuk informasi tentang peningkatan versi kluster, lihat Upgrade versi Kubernetes 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}" # Contoh: 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}" # Contoh: 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

Catatan

Saat membuat listener UDP tanpa menentukan pemeriksaan kesehatan secara manual, pemeriksaan kesehatan TCP diaktifkan secara default untuk grup server. Disarankan agar Anda secara eksplisit menentukan pemeriksaan kesehatan UDP atau menonaktifkannya menggunakan anotasi.

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Contoh: 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: Multiple, as listed in the following table.

Anotasi

Deskripsi

Versi CCM yang didukung

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

Atur tipe protokol listener. Pisahkan beberapa nilai dengan koma, misalnya, TCP:80,TCPSSL:443.

v2.5.0 atau lebih baru

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

ID Sertifikat server. Anda dapat login ke Konsol Layanan Manajemen Sertifikat dan membuat serta melihat sertifikat di halaman SSL Certificates.

Seperti yang ditunjukkan pada gambar berikut:

image

Penting

Saat ini, listener TCP/SSL tidak mendukung grup server yang memiliki pelestarian 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 Service yang sama. Untuk informasi selengkapnya tentang cara mendapatkan alamat IP asal klien melalui NLB, lihat Dapatkan alamat IP asal klien melalui NLB.

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Contoh: 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

Hanya tersedia saat menggunakan plug-in jaringan Terway.

Dengan mengonfigurasi range port listener untuk penerusan port penuh pada NLB, Anda dapat mendengarkan pada range port tertentu dan meneruskan traffic ke port yang sesuai pada server backend.

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

targetPort adalah port pemeriksaan kesehatan pada server backend. Nilainya harus bilangan bulat dalam rentang 1–65535.

v2.11.4 atau 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}" # Contoh: 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 pada 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: Multiple, as listed in the following table.

Anotasi

Deskripsi

Versi CCM yang didukung

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

Atur tipe protokol listener. Pisahkan beberapa nilai dengan koma, misalnya, TCP:80,TCPSSL:443.

v2.5.0 atau lebih baru

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

ID Sertifikat server. Anda dapat login ke Konsol Layanan Manajemen Sertifikat dan membuat serta melihat sertifikat di halaman SSL Certificates.

Seperti yang ditunjukkan pada gambar berikut:

image

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

ID Sertifikat CA. Anda dapat login ke Konsol Layanan Manajemen Sertifikat dan temukan ID di detail sertifikat pada halaman PCA Certificate Management.

image

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

Aktifkan atau nonaktifkan otentikasi timbal balik. Nilai yang valid:

  • on: Aktifkan.

  • off: Nonaktifkan.

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}" # Contoh: 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

Atur kebijakan keamanan TLS

Anotasi: Multiple, as listed in the following table.

Anotasi

Deskripsi

Versi CCM yang didukung

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

Atur tipe protokol listener. Pisahkan beberapa nilai dengan koma, misalnya, TCP:80,TCPSSL:443.

v2.5.0 atau lebih baru

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

ID Sertifikat server. Anda dapat login ke Konsol Layanan Manajemen Sertifikat dan membuat serta melihat sertifikat di halaman SSL Certificates.

Seperti yang ditunjukkan pada gambar berikut:

image

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

ID kebijakan keamanan. Kebijakan keamanan sistem dan 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}" # Contoh: 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

Aktifkan Proxy Protocol

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

Deskripsi

Versi CCM yang didukung

Aktifkan atau nonaktifkan pembawaan alamat IP sumber klien ke server backend menggunakan Proxy Protocol. Nilai yang valid:

  • on: Aktifkan.

  • off: Nonaktifkan.

Nilai default: off

Penting

Sebelum mengaktifkan Proxy Protocol, pastikan layanan backend mendukung Proxy Protocol v2. Jika tidak, traffic akan gagal. Konfigurasikan pengaturan ini dengan hati-hati.

v2.5.0 atau 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}" # Contoh: 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

Bawa informasi tambahan dalam Proxy Protocol

Anotasi: Multiple, as listed in the following table.

Anotasi

Deskripsi

Versi CCM yang didukung

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

Aktifkan atau nonaktifkan pembawaan alamat IP sumber klien ke server backend menggunakan Proxy Protocol. Nilai yang valid:

  • on: Aktifkan.

  • off: Nonaktifkan.

Nilai default: off

Penting

Sebelum mengaktifkan Proxy Protocol, pastikan layanan backend mendukung Proxy Protocol v2. Jika tidak, traffic akan gagal. Konfigurasikan pengaturan ini dengan hati-hati.

v2.5.0 atau lebih baru

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

Aktifkan atau nonaktifkan pembawaan VpcId ke server backend menggunakan Proxy Protocol. Nilai yang valid:

  • on: Aktifkan.

  • off: Nonaktifkan.

Nilai default: off

v2.9.1 atau lebih baru

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

Aktifkan atau nonaktifkan pembawaan PrivateLinkEpId ke server backend menggunakan Proxy Protocol. Nilai yang valid:

  • on: Aktifkan.

  • off: Nonaktifkan.

Nilai default: off

v2.9.1 atau lebih baru

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

Aktifkan atau nonaktifkan pembawaan PrivateLinkEpsId ke server backend menggunakan Proxy Protocol. Nilai yang valid:

  • on: Aktifkan.

  • off: Nonaktifkan.

Nilai default: off

v2.9.1 atau 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}" # Contoh: 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 batas CPS untuk koneksi baru per detik pada listener

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

Deskripsi

Versi CCM yang didukung

Jumlah maksimum koneksi baru per detik untuk instans NLB. Nilai yang valid: [0, 1000000]. Nilai 0 berarti tidak ada batas.

v2.5.0 atau 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}" # Contoh: 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. Nilai yang valid: [10, 900].

Nilai default: 900

v2.5.0 atau 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}" # Contoh: 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

Atur kebijakan ALPN

Anotasi: Multiple, as listed in the following table.

Anotasi

Deskripsi

Versi CCM yang didukung

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

Atur tipe protokol listener. Pisahkan beberapa nilai dengan koma, misalnya, TCP:80,TCPSSL:443.

v2.5.0 atau lebih baru

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

ID Sertifikat server. Anda dapat login ke Konsol Layanan Manajemen Sertifikat dan membuat serta melihat sertifikat di halaman SSL Certificates.

Seperti yang ditunjukkan pada gambar berikut:

image

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

Aktifkan atau nonaktifkan ALPN. Nilai yang valid:

  • on: Aktifkan.

  • off: Nonaktifkan.

Nilai default: off

v2.10.0 atau lebih baru

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

Kebijakan ALPN. Nilai yang valid:

  • HTTP1Only: Negosiasi hanya protokol HTTP/1.x, dengan prioritas HTTP/1.1 > HTTP/1.0.

  • HTTP2Only: Negosiasi hanya protokol HTTP/2.0.

  • HTTP2Optional: Lebih memilih protokol HTTP/1.x tetapi juga menerima HTTP/2.0, dengan prioritas HTTP/1.1 > HTTP/1.0 > HTTP/2.0.

  • HTTP2Preferred: Lebih memilih protokol HTTP/2.0 tetapi juga menerima HTTP/1.x, dengan prioritas HTTP/2.0 > HTTP/1.1 > HTTP/1.0.

Untuk nilai valid lainnya, lihat field AlpnPolicy dalam 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}" # Contoh: 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 grup server umum

Atur algoritma penjadwalan

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

Deskripsi

Versi CCM yang didukung

Algoritma penjadwalan. Nilai yang valid:

  • wrr: Weighted round-robin. Server dengan bobot lebih tinggi menerima lebih banyak permintaan.

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

  • sch: Source IP hash. Permintaan dari IP sumber yang sama diarahkan ke server yang sama.

  • tch: Four-tuple hash. Berdasarkan empat-tuple (IP sumber, IP tujuan, port sumber, port tujuan), hashing konsisten memastikan aliran yang sama diarahkan ke server yang sama.

  • wlc: Weighted least connections. Mempertimbangkan bobot server dan jumlah koneksi saat ini. Saat bobot sama, server dengan koneksi lebih sedikit menerima lebih banyak permintaan.

Nilai default: wrr

Untuk nilai valid lainnya, lihat field Scheduler dalam API CreateServerGroup.

v2.5.0 atau 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}" # Contoh: 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

Aktifkan pengurasan koneksi

Anotasi: Beberapa di antaranya tercantum dalam tabel berikut.

Anotasi

Deskripsi

Versi CCM yang didukung

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

Aktifkan atau nonaktifkan pengurasan koneksi. Saat diaktifkan, perilaku berikut terjadi saat server backend dihapus atau gagal dalam pemeriksaan kesehatan:

  • on: Koneksi yang ada tetap berjalan normal selama periode tertentu sebelum dihentikan secara aktif, memastikan shutdown layanan yang lancar.

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

Nilai default: off

v2.5.0 atau lebih baru

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

Atur periode timeout pengurasan koneksi.

  • Satuan: detik.

  • Nilai yang valid: [0, 900]. Nilai 0 berarti penghentian segera.

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Contoh: 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 pelestarian IP klien

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

Deskripsi

Versi CCM yang didukung

Aktifkan atau nonaktifkan pelestarian IP klien. Nilai yang valid:

  • on: Aktifkan.

  • off: Nonaktifkan.

Nilai default: on

v2.5.0 atau 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}" # Contoh: 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: Multiple, as listed in the following table. Secara default, pemeriksaan kesehatan diaktifkan untuk port TCP. Untuk menyesuaikan pemeriksaan kesehatan TCP, Anda harus menentukan semua anotasi berikut.

Anotasi

Deskripsi

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

Aktifkan atau nonaktifkan pemeriksaan kesehatan. Nilai yang valid:

  • on: Aktifkan.

  • off: Nonaktifkan.

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 server untuk pemeriksaan kesehatan. Nilai yang valid: [0, 65535]. Nilai default: 0, yang berarti port server digunakan untuk pemeriksaan kesehatan.

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

Timeout maksimum untuk respons pemeriksaan kesehatan. Satuan: detik. Nilai yang valid: [1, 300].

Nilai default: 5

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

Jumlah pemeriksaan kesehatan berhasil berturut-turut yang diperlukan untuk menandai server sebagai sehat setelah sebelumnya ditandai tidak sehat. Nilai yang valid: [2, 10].

Nilai default: 2

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

Jumlah pemeriksaan kesehatan gagal berturut-turut yang diperlukan untuk menandai server sebagai tidak sehat setelah sebelumnya ditandai sehat. Nilai yang valid: [2, 10].

Nilai default: 2

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

Interval antar pemeriksaan kesehatan. Satuan: detik. Nilai yang valid: [1, 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}" # Contoh: 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: Multiple, as listed in the following table. Untuk mengonfigurasi pemeriksaan kesehatan HTTP, Anda harus menentukan semua anotasi berikut.

Anotasi

Deskripsi

Versi CCM yang didukung

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

Aktifkan atau nonaktifkan pemeriksaan kesehatan. Nilai yang valid:

  • on: Aktifkan.

  • off: Nonaktifkan.

Nilai default: on

v2.5.0 atau 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 pemeriksaan kesehatan. Jalur harus terdiri dari 1–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: Gunakan alamat IP pribadi server backend.

  • domain: Tentukan nama domain kustom. Nama domain harus terdiri dari 1–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 server untuk pemeriksaan kesehatan. Nilai yang valid: [0, 65535]. Nilai default: 0, yang berarti port server digunakan untuk pemeriksaan kesehatan.

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

Timeout maksimum untuk respons pemeriksaan kesehatan. Satuan: detik. Nilai yang valid: [1, 300].

Nilai default: 5

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

Jumlah pemeriksaan kesehatan berhasil berturut-turut yang diperlukan untuk menandai server sebagai sehat setelah sebelumnya ditandai tidak sehat. Nilai yang valid: [2, 10].

Nilai default: 2

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

Jumlah pemeriksaan kesehatan gagal berturut-turut yang diperlukan untuk menandai server sebagai tidak sehat setelah sebelumnya ditandai sehat. Nilai yang valid: [2, 10].

Nilai default: 2

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

Interval antar pemeriksaan kesehatan. Satuan: detik. Nilai yang valid: [1, 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}" # Contoh: 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"
    # Atur 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

Atur tipe grup server

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

Deskripsi

Versi CCM yang didukung

Atur tipe grup server. Nilai yang valid:

  • Ip: Tipe alamat IP. Mendukung penambahan server backend berdasarkan alamat IP.

  • Instance (default): Tipe instans. Mendukung penambahan instans ECS dan ENI.

Nilai default: Instance

Untuk informasi selengkapnya tentang tipe grup server NLB, lihat Grup server NLB.

v2.8.0 atau 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}" # Contoh: 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

Anotasi ini digunakan untuk menggunakan kembali grup server virtual yang sudah ada dan hanya berlaku saat Anda menggunakan kembali NLB yang sudah ada. Untuk informasi selengkapnya, lihat Deploy layanan lintas kluster dengan menggunakan kembali load balancer yang sudah ada.

Atur bobot traffic untuk Service

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

Saat beberapa Service berbagi NLB yang sama, anotasi ini digunakan untuk mengatur bobot traffic untuk Service saat ini. Anotasi ini hanya berlaku saat Anda menggunakan kembali grup server yang sudah ada. Untuk informasi selengkapnya, lihat Deploy 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

Lewati pembaruan bobot server backend selama sinkronisasi Service. Gunakan pengaturan ini saat Anda perlu mengelola bobot server backend secara manual melalui mekanisme selain CCM. Nilai yang valid:

  • on

  • off

Nilai default: off

v2.11.1 atau 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}" # Contoh: 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