全部产品
Search
文档中心

Server Load Balancer:Konfigurasikan Network Load Balancer (NLB) Menggunakan Anotasi

更新时间:Feb 28, 2026

Saat menggunakan Network Load Balancer (NLB) bersama Service, gunakan anotasi dalam file YAML untuk mengaktifkan fitur-fitur tambahan seperti menentukan jenis jaringan NLB, mengaktifkan mode baca-saja konfigurasi, dan mengonfigurasi otentikasi timbal balik. Topik ini menjelaskan cara mengonfigurasi NLB melalui anotasi dalam file YAML Service, mencakup sumber daya NLB, listener, dan kelompok server.

Indeks

Klasifikasi

Klasifikasi Fitur

Tautan Konfigurasi

Catatan

Operasi NLB Umum

Create a Load Balancer

Instance Configuration

Security Configuration

Operasi Listener Umum

Create a Listener

Listener Configuration

Security Configuration

Operasi Kelompok Server Umum

Server Configuration

Catatan

  • Versi kluster harus v1.24 atau lebih baru, dan versi Cloud Controller Manager (CCM) harus v2.5.0 atau lebih baru. Untuk meningkatkan versi kluster, lihat Upgrade kluster secara manual. Untuk meningkatkan komponen, lihat Manage components.

  • Tentukan spec.loadBalancerClass sebagai alibabacloud.com/nlb dalam Service. Jika tidak ditentukan, Classic Load Balancer (CLB) akan dibuat secara default.

  • Setelah Service dibuat, spec.loadBalancerClass tidak dapat diubah. Sumber daya CLB dan NLB tidak dapat saling dikonversi.

  • Konsol layanan kontainer tidak mendukung manajemen NLB. Gunakan perintah kubectl untuk operasi tersebut.

Operasi NLB Umum

Buat NLB Publik

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

Deskripsi

Versi CCM yang Didukung

Tentukan zona NLB, alamat IP pribadi, dan informasi EIP dalam format:

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

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

    Akses Konsol NLB untuk melihat wilayah dan zona yang didukung oleh NLB.

  • Alamat IP pribadi: Opsional.

  • ID instans EIP: Opsional.

Zona dan vSwitchID: v2.5.0 dan lebih baru

Alamat IP pribadi dan Elastic IP Address (EIP): v2.12.1 dan 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 Pribadi

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

Deskripsi

Versi CCM yang Didukung

Tentukan NLB sebagai tipe jaringan pribadi. Anda dapat mengubah nilai anotasi ini untuk mengalihkan NLB antara jaringan publik dan pribadi. Nilai:

  • internet: NLB publik.

  • intranet: NLB pribadi.

Nilai default: internet

Login ke Konsol NLB untuk melihat wilayah dan zona yang didukung oleh NLB. Minimal diperlukan dua zona. Pisahkan beberapa zona dengan koma, seperti cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.

v2.5.0 dan 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 NLB

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

Deskripsi

Versi CCM yang Didukung

Tentukan zona NLB, alamat IP pribadi, dan informasi EIP dalam format:

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

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

    Akses Konsol NLB untuk melihat wilayah dan zona yang didukung oleh NLB.

  • Alamat IP pribadi: Opsional.

  • ID instans EIP: Opsional.

  • Zona dan vSwitchID: v2.5.0 dan lebih baru

  • Alamat IP pribadi dan Elastic IP Address (EIP): v2.12.1 dan 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 NLB

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

Deskripsi

Versi CCM yang Didukung

Tentukan zona NLB, alamat IP pribadi, dan informasi EIP dalam format:

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

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

    Akses Konsol NLB untuk melihat wilayah dan zona yang didukung oleh NLB.

  • Alamat IP pribadi: Opsional.

  • ID instans EIP: Opsional.

Zona dan vSwitchID: v2.5.0 dan lebih baru

Alamat IP pribadi dan Elastic IP Address (EIP): v2.12.1 dan lebih baru

apiVersion: v1
kind: Service
metadata:
  annotations:
    # Jika alamat IP pribadi tidak diperlukan, biarkan 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 NLB

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

Deskripsi

Versi CCM yang Didukung

Tentukan nama instans NLB. Nama NLB harus terdiri dari 2 hingga 128 karakter bahasa Inggris atau Tionghoa, dimulai dengan huruf besar/kecil atau karakter Tionghoa, serta boleh mengandung angka, titik (.), garis bawah (_), dan tanda hubung (-).

v2.5.0 dan 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 NLB

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

Deskripsi

Versi CCM yang Didukung

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

Login ke platform Resource Management Alibaba Cloud untuk mencari ID kelompok sumber daya.

v2.5.0 dan 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

Tentukan versi protokol NLB. Tipe IP tidak dapat diubah setelah pembuatan. Saat menggunakan ini, mode proxy kube-proxy kluster harus IPVS. Nilai:

  • ipv4: Tipe IPv4.

  • DualStack: Tipe dual-stack, mendukung IPv4 dan IPv6.

    • Kedua 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 dan 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 NLB

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

Deskripsi

Versi CCM yang Didukung

Tambahkan tag tambahan. Pisahkan beberapa tag dengan koma (,). Contoh: k1=v1,k2=v2. Versi v2.10.0 dan lebih baru mendukung modifikasi tag untuk instans yang sudah ada dan digunakan ulang.

Penting

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

v2.5.0 dan 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

Penting

Jangan menambahkan atau memodifikasi anotasi penggunaan ulang untuk Service LoadBalancer yang sudah ada. Operasi ini dapat menyebabkan kegagalan penggunaan ulang atau mencegah load balancer asli yang dibuat oleh CCM dilepas dengan benar.

Anotasi: Beberapa, seperti ditunjukkan pada tabel berikut.

Anotasi

Deskripsi

Versi CCM yang Didukung

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

Tambahkan ID load balancer yang sudah ada.

v2.5.0 dan lebih baru

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

Tentukan apakah konfigurasi listener NLB disinkronkan berdasarkan Service. Nilai:

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

  • false: CCM tidak memproses 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

Kaitkan Paket Bandwidth Internet Bersama

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

Deskripsi

Versi CCM yang Didukung

ID paket Internet Shared Bandwidth yang akan di-bind.

Login ke Konsol VPC untuk mencari ID paket Internet Shared Bandwidth.

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

Konfigurasikan Cross-AZ Forwarding

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

Deskripsi

Versi CCM yang Didukung

Aktifkan atau nonaktifkan cross-AZ forwarding. Nilai:

  • on

  • off

Nilai default: on

v2.13.0 dan 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-cross-zone-enabled: "off" 
  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 Publik atau Pribadi

Anotasi: Beberapa, seperti ditunjukkan pada tabel berikut.

Anotasi

Deskripsi

Versi CCM yang Didukung

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

Tentukan versi protokol NLB. Tipe IP tidak dapat diubah setelah pembuatan. Saat menggunakan ini, mode proxy kube-proxy kluster harus IPVS. Nilai:

  • ipv4: Tipe IPv4.

  • DualStack: Tipe dual-stack, mendukung IPv4 dan IPv6.

    • Kedua 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 dan lebih baru

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

Tentukan tipe jaringan IPv6 NLB. Nilai:

  • intranet: IPv6 pribadi

  • internet: IPv6 publik

Nilai default: intranet

Catatan

Saat mengaktifkan IPv6 publik, VPC tempat instans NLB berada harus memiliki gateway IPv6. Untuk informasi selengkapnya, lihat Buat dan kelola gateway IPv6.

v2.9.1 dan 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 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 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 menghapus Service LoadBalancer, pertahankan instans NLB yang dibuat oleh Service. Hapus tag kubernetes.do.not.delete dan ack.aliyun.com dari instans NLB dan kelompok server. Server yang ada dalam kelompok server dipertahankan.

Saat fitur ini diaktifkan, event Peringatan bertipe PreservedOnDelete dihasilkan selama sinkronisasi Service. Setelah mengonfigurasi anotasi ini, periksa event tersebut untuk memastikan fitur berhasil diaktifkan.

Nilai:

  • Tidak kosong: Aktifkan fitur retensi.

  • Kosong atau tidak ditentukan: Jangan aktifkan fitur retensi.

Penting

Hapus Service, bukan ubah tipe Service. Jika tidak, Service mungkin salah dikaitkan kembali dengan NLB yang sebelumnya dipertahankan.

v2.10.0 dan 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

Konfigurasikan Grup Keamanan Listener

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

Deskripsi

Versi CCM yang Didukung

Konfigurasikan grup keamanan listener. Pisahkan beberapa nilai dengan koma (,). Contoh: sg-aaaaa,sg-bbbbb.

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

Konfigurasikan Protokol TCP dan UDP untuk Listener

Deskripsi

Versi CCM yang Didukung

Fitur ini memerlukan versi kluster Kubernetes v1.24 atau lebih baru. Untuk meningkatkan 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 kelompok server. Saat menggunakan listener UDP, tentukan secara eksplisit pemeriksaan kesehatan UDP atau nonaktifkan pemeriksaan kesehatan 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: Beberapa, seperti ditunjukkan pada tabel berikut.

Anotasi

Deskripsi

Versi CCM yang Didukung

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

Konfigurasikan tipe protokol listener. Pisahkan beberapa nilai dengan koma, seperti TCP:80,TCPSSL:443.

v2.5.0 dan lebih baru

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

ID sertifikat server. Login ke Konsol Layanan Manajemen Sertifikat dan buat atau lihat di halaman SSL Certificate Management.

Gambar berikut menunjukkan contohnya.

image

Penting

Saat ini, listener TCP/SSL tidak mendukung pengikatan kelompok server dengan pelestarian IP klien yang 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 mendapatkan alamat IP 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

Konfigurasikan Range Port Listener

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

Deskripsi

Versi CCM yang Didukung

Hanya didukung dengan plug-in jaringan Terway.

Konfigurasikan range alamat listener full port forwarding NLB untuk mendengarkan range port tertentu dan meneruskan trafik ke port backend server yang sesuai.

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

targetPort adalah port pemeriksaan kesehatan server backend dan harus berupa bilangan bulat. Rentang nilai: 1-65535.

v2.11.4 dan 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
    # Konfigurasikan 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, seperti ditunjukkan pada tabel berikut.

Anotasi

Deskripsi

Versi CCM yang Didukung

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

Konfigurasikan tipe protokol listener. Pisahkan beberapa nilai dengan koma, seperti TCP:80,TCPSSL:443.

v2.5.0 dan lebih baru

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

ID sertifikat server. Login ke Konsol Layanan Manajemen Sertifikat dan buat atau lihat di halaman SSL Certificate Management.

Gambar berikut menunjukkan contohnya.

image

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

ID sertifikat CA. Login ke Konsol Layanan Manajemen Sertifikat dan lihat di detail sertifikat pada halaman PCA Certificate Management.

image

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

Aktifkan atau nonaktifkan otentikasi timbal balik. Nilai:

  • 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

Konfigurasikan Kebijakan Keamanan TLS

Anotasi: Beberapa, seperti ditunjukkan pada tabel berikut.

Anotasi

Deskripsi

Versi CCM yang Didukung

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

Konfigurasikan tipe protokol listener. Pisahkan beberapa nilai dengan koma, seperti TCP:80,TCPSSL:443.

v2.5.0 dan lebih baru

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

ID sertifikat server. Login ke Konsol Layanan Manajemen Sertifikat dan buat atau lihat di halaman SSL Certificate Management.

Gambar berikut menunjukkan contohnya.

image

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

ID kebijakan keamanan. Mendukung kebijakan keamanan sistem dan kebijakan keamanan kustom. Nilai:

  • 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

Konfigurasikan 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 melalui Proxy Protocol. Nilai:

  • on: Aktifkan.

  • off: Nonaktifkan.

Nilai default: off

Penting

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

v2.5.0 dan 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

Proxy Protocol Membawa Informasi Tambahan

Anotasi: Beberapa, seperti ditunjukkan pada tabel berikut.

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 melalui Proxy Protocol. Nilai:

  • on: Aktifkan.

  • off: Nonaktifkan.

Nilai default: off

Penting

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

v2.5.0 dan lebih baru

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

Aktifkan atau nonaktifkan pembawaan ID VPC ke server backend melalui Proxy Protocol. Nilai:

  • on: Aktifkan.

  • off: Nonaktifkan.

Nilai default: off

v2.9.1 dan lebih baru

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

Aktifkan atau nonaktifkan pembawaan PrivateLinkEpId ke server backend melalui Proxy Protocol. Nilai:

  • on: Aktifkan.

  • off: Nonaktifkan.

Nilai default: off

v2.9.1 dan lebih baru

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

Aktifkan atau nonaktifkan pembawaan PrivateLinkEpsId ke server backend melalui Proxy Protocol. Nilai:

  • on: Aktifkan.

  • off: Nonaktifkan.

Nilai default: off

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

Konfigurasikan Batas Laju Koneksi Baru Listener (CPS)

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

Deskripsi

Versi CCM yang Didukung

Batas laju koneksi baru (CPS) per detik untuk instans Network Load Balancer. Rentang nilai: [0, 1000000]. 0 berarti tanpa batas laju.

v2.5.0 dan 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

Konfigurasikan Timeout Idle Koneksi Listener

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

Deskripsi

Versi CCM yang Didukung

Timeout idle koneksi. Satuan: detik. Rentang nilai: [10, 900].

Nilai default: 900

v2.5.0 dan 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

Konfigurasikan Kebijakan ALPN

Anotasi: Beberapa, seperti ditunjukkan pada tabel berikut.

Anotasi

Deskripsi

Versi CCM yang Didukung

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

Konfigurasikan tipe protokol listener. Pisahkan beberapa nilai dengan koma, seperti TCP:80,TCPSSL:443.

v2.5.0 dan lebih baru

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

ID sertifikat server. Login ke Konsol Layanan Manajemen Sertifikat dan buat atau lihat di halaman SSL Certificate Management.

Gambar berikut menunjukkan contohnya.

image

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

Aktifkan atau nonaktifkan ALPN. Nilai:

  • on: Aktifkan.

  • off: Nonaktifkan.

Nilai default: off

v2.10.0 dan lebih baru

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

Kebijakan ALPN. Nilai:

  • HTTP1Only: Negosiasi hanya protokol HTTP/1.x. Prioritas: HTTP/1.1 > HTTP/1.0.

  • HTTP2Only: Negosiasi hanya protokol HTTP/2.0.

  • HTTP2Optional: Utamakan protokol HTTP/1.x, tetapi juga terima protokol HTTP/2.0. Prioritas: HTTP/1.1 > HTTP/1.0 > HTTP/2.0.

  • HTTP2Preferred: Utamakan protokol HTTP/2, tetapi juga terima protokol HTTP/1.x. Prioritas: HTTP/2.0 > HTTP/1.1 > HTTP/1.0.

Untuk nilai lainnya, lihat bidang 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

Konfigurasikan Sertifikat Tambahan

Anotasi

Deskripsi

Versi CCM yang Didukung

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

Konfigurasikan tipe protokol listener. Pisahkan beberapa nilai dengan koma (,). Contoh: TCP:80,TCPSSL:443.

v2.5.0 dan lebih baru

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

ID sertifikat server. Masuk ke Konsol Layanan Manajemen Sertifikat dan buat atau lihatnya di halaman SSL Certificate Management.

Gambar berikut menunjukkan contohnya.

image

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-additional-cert-ids

ID sertifikat tambahan. Pisahkan beberapa sertifikat tambahan dengan koma (,). Login ke Konsol Layanan Manajemen Sertifikat dan buat atau lihat di halaman SSL Certificate Management.

Gambar berikut menunjukkan contohnya.

image

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-additional-cert-ids: "${CertIdentifier-1},${CertIdentifier-2}" # Pisahkan beberapa sertifikat tambahan 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: 80
  selector:
    app: nginx
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

Operasi Kelompok Server Umum

Konfigurasikan Kebijakan Penjadwalan

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

Deskripsi

Versi CCM yang Didukung

Algoritma penjadwalan. Nilai:

  • wrr: Weighted round-robin. Server dengan bobot lebih tinggi memiliki probabilitas lebih tinggi dipilih.

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

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

  • tch: Four-tuple hash. Hash konsisten berdasarkan empat-tuple (IP sumber, IP tujuan, port sumber, dan port tujuan). Aliran yang sama dijadwalkan ke server yang sama.

  • wlc: Weighted least connections. Selain round-robin berdasarkan bobot setiap server backend, algoritma ini mempertimbangkan beban aktual (jumlah koneksi) server backend. Saat bobot sama, server backend dengan koneksi saat ini lebih sedikit memiliki probabilitas lebih tinggi dipilih.

Nilai default: wrr

Untuk nilai lainnya, lihat bidang Scheduler dalam API CreateServerGroup.

v2.5.0 dan 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

Konfigurasikan Pengurasan Koneksi

Anotasi: Beberapa, seperti ditunjukkan pada tabel berikut.

Anotasi

Deskripsi

Versi CCM yang Didukung

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

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

  • on: Koneksi yang ada mentransmisikan secara normal selama periode tertentu. Setelah timeout, koneksi ditutup secara aktif untuk memastikan offline layanan yang lancar.

  • off: Koneksi yang ada tidak ditutup secara aktif. Koneksi hanya ditutup saat klien memutuskan koneksi secara aktif atau sesi koneksi persisten berakhir.

Nilai default: off

v2.5.0 dan lebih baru

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

Konfigurasikan timeout pengurasan koneksi.

  • Satuan: detik.

  • Nilai valid [0, 900]. Nilai 0 menunjukkan pemutusan langsung.

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

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

  • on: Aktifkan.

  • off: Nonaktifkan.

Nilai default: on

v2.5.0 dan 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

Konfigurasikan Pemeriksaan Kesehatan TCP

Anotasi: Beberapa, seperti ditunjukkan pada tabel berikut. Semua anotasi berikut wajib untuk mengonfigurasi pemeriksaan kesehatan TCP. Pemeriksaan kesehatan diaktifkan secara default untuk port TCP.

Anotasi

Deskripsi

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

Aktifkan atau nonaktifkan pemeriksaan kesehatan. Nilai:

  • on: Aktifkan.

  • off: Nonaktifkan.

Nilai default: on

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

Protokol pemeriksaan kesehatan. Nilai:

  • tcp

  • http

Nilai default: tcp

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

Port server untuk pemeriksaan kesehatan. Rentang nilai: [0, 65535]. Nilai default: 0, yang berarti menggunakan port server untuk pemeriksaan kesehatan.

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

Timeout respons pemeriksaan kesehatan maksimum. Satuan: detik. Rentang nilai: [1, 300].

Nilai default: 5

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

Jumlah pemeriksaan kesehatan sukses berturut-turut yang diperlukan untuk mengubah status pemeriksaan kesehatan server dari gagal menjadi sehat. Rentang nilai: [2, 10].

Nilai default: 2

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

Jumlah pemeriksaan kesehatan gagal berturut-turut yang diperlukan untuk mengubah status pemeriksaan kesehatan server dari sehat menjadi gagal. Rentang nilai: [2, 10].

Nilai default: 2

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

Interval pemeriksaan kesehatan. Satuan: detik. Rentang nilai: [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

Konfigurasikan Pemeriksaan Kesehatan HTTP

Anotasi: Beberapa, seperti ditunjukkan pada tabel berikut. Semua anotasi berikut wajib untuk mengonfigurasi pemeriksaan kesehatan HTTP. Pemeriksaan kesehatan diaktifkan secara default untuk port TCP.

Anotasi

Deskripsi

Versi CCM yang Didukung

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

Aktifkan atau nonaktifkan pemeriksaan kesehatan. Nilai:

  • on: Aktifkan.

  • off: Nonaktifkan.

Nilai default: on

v2.5.0 dan lebih baru

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

Protokol pemeriksaan kesehatan. Nilai:

  • tcp

  • http

Nilai default: tcp

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

Jalur pemeriksaan kesehatan. Panjang: 1 hingga 80 karakter. Hanya huruf, angka, dan karakter tertentu yang diizinkan. 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 bernilai HTTP.

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

Nama domain yang digunakan untuk pemeriksaan kesehatan. Nilai:

  • $SERVER_IP: Gunakan alamat IP pribadi server backend.

  • domain: Tentukan nama domain tertentu. Batas panjang: 1 hingga 80 karakter. Hanya huruf kecil, angka, tanda hubung (-), dan titik (.) yang diizinkan.

Catatan

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

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

Port server untuk pemeriksaan kesehatan. Rentang nilai: [0, 65535]. Nilai default: 0, yang berarti menggunakan port server untuk pemeriksaan kesehatan.

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

Timeout respons pemeriksaan kesehatan maksimum. Satuan: detik. Rentang nilai: [1, 300].

Nilai default: 5

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

Jumlah pemeriksaan kesehatan sukses berturut-turut yang diperlukan untuk mengubah status pemeriksaan kesehatan server dari gagal menjadi sehat. Rentang nilai: [2, 10].

Nilai default: 2

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

Jumlah pemeriksaan kesehatan gagal berturut-turut yang diperlukan untuk mengubah status pemeriksaan kesehatan server dari sehat menjadi gagal. Rentang nilai: [2, 10].

Nilai default: 2

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

Interval pemeriksaan kesehatan. Satuan: detik. Rentang nilai: [1, 50].

Nilai default: 10

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

Metode pemeriksaan kesehatan. Nilai:

  • GET

  • HEAD

Catatan

Parameter ini hanya berlaku saat service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-type bernilai 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"
    # Konfigurasikan 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

Konfigurasikan Jenis Kelompok Server

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

Deskripsi

Versi CCM yang Didukung

Konfigurasikan jenis kelompok server. Nilai:

  • Ip: Tipe alamat IP. Mendukung penambahan langsung server backend bertipe alamat IP.

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

Nilai default: Instance

Untuk klasifikasi dan deskripsi kelompok server NLB, lihat Kelompok server NLB.

v2.8.0 dan 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 Ulang Kelompok Server yang Sudah Ada

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

Gunakan ulang kelompok vServer yang sudah ada. Ini hanya berlaku saat menggunakan ulang NLB yang sudah ada. Untuk contoh spesifik, lihat Deploy layanan lintas kluster dengan menggunakan ulang load balancer yang sudah ada.

Konfigurasikan Bobot Trafik Service

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

Saat beberapa Service menggunakan ulang NLB yang sama, gunakan anotasi ini untuk mengonfigurasi bobot trafik untuk Service saat ini. Anotasi ini hanya berlaku saat menggunakan ulang kelompok server yang sudah ada. Untuk contoh spesifik, lihat Deploy layanan lintas kluster dengan menggunakan ulang 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, lewati pembaruan bobot server backend dalam kelompok server. Konfigurasi ini berlaku untuk skenario di mana Anda perlu mengelola bobot server backend secara manual melalui mekanisme selain CCM. Nilai:

  • on

  • off

Nilai default: off

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