Network Load Balancer (NLB) adalah layanan load balancing lapisan 4 dari Alibaba Cloud yang menawarkan performa tinggi dan auto-scaling. Anda dapat menggunakan anotasi dalam file YAML untuk mengonfigurasi berbagai fitur load balancing. Topik ini menjelaskan cara menggunakan anotasi untuk mengonfigurasi instance NLB, listener, dan kelompok server.
Perhatian
Versi komponen cloud controller manager (CCM) di klaster ACK harus 2.5.0 atau lebih baru. Untuk meningkatkan komponen, lihat Kelola Komponen.
Dalam layanan, atur
spec.loadBalancerClasskealibabacloud.com/nlb. Jika bidang ini tidak ditentukan, sebuah instance Classic Load Balancer (CLB) akan dibuat secara default.Setelah layanan dibuat, nilai dari
spec.loadBalancerClasstidak dapat diubah. Anda tidak dapat mengonversi instance CLB menjadi instance NLB atau sebaliknya.
Operasi NLB tipikal
Buat instance NLB yang menghadap publik
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps
Deskripsi | Nilai default | Versi CCM yang didukung |
Menentukan zona untuk instance NLB. Untuk melihat wilayah dan zona yang didukung oleh NLB, masuk ke Konsol NLB. Anda harus menentukan setidaknya dua zona berbeda. Pisahkan beberapa zona dengan koma (,), contohnya, Catatan NLB mendukung penyebaran multi-zona. Untuk memastikan ketersediaan tinggi, pilih vSwitch di setidaknya dua zona berbeda jika wilayah saat ini memiliki dua zona atau lebih. | Tidak ada | 2.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}" # Contohnya, cn-hangzhou-k:vsw-***** dan cn-hangzhou-j:vsw-*****. Untuk memastikan ketersediaan tinggi, pilih vSwitch di setidaknya dua zona berbeda.
name: nginx
namespace: default
spec:
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: LoadBalancerBuat instance NLB privat
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type
Deskripsi | Nilai default | Versi CCM yang Didukung |
Menentukan jenis jaringan dari instance NLB. Anda dapat mengubah nilai anotasi ini untuk beralih antara instance NLB yang menghadap publik dan privat. Nilai valid:
Untuk melihat wilayah dan zona yang didukung oleh NLB, masuk ke Konsol NLB. Anda harus menentukan setidaknya dua zona berbeda. Pisahkan beberapa zona dengan koma (,), contohnya, Catatan NLB mendukung penyebaran multi-zona. Untuk memastikan ketersediaan tinggi, pilih vSwitch di setidaknya dua zona berbeda jika wilayah saat ini memiliki dua zona atau lebih. | internet | 2.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}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type: "intranet"
name: nginx
namespace: default
spec:
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: LoadBalancerTentukan nama untuk instance NLB
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-name
Deskripsi | Nilai default | Versi CCM yang didukung |
Menentukan nama dari instance NLB. Nama tersebut harus memiliki panjang 2 hingga 128 karakter, dimulai dengan huruf atau karakter Cina, dan dapat berisi angka, titik (.), garis bawah (_), dan tanda hubung (-). | Tidak ada | 2.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}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-name: "${your-nlb-name}" # Nama dari instance NLB.
name: nginx
namespace: default
spec:
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: LoadBalancerTentukan kelompok sumber daya untuk instance NLB
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-resource-group-id
Deskripsi | Nilai default | Versi CCM yang didukung |
Menentukan kelompok sumber daya tempat instance NLB milik. Setelah Anda menentukan ID kelompok sumber daya, Anda tidak dapat mengubahnya. Anda dapat masuk ke Platform Manajemen Sumber Daya Alibaba Cloud untuk menanyakan ID kelompok sumber daya. | Tidak ada | 2.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}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-resource-group-id: "${your-resource-group-id}" # ID dari kelompok sumber daya.
name: nginx
namespace: default
spec:
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: LoadBalancerBuat instance NLB dual-stack
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip-version
Deskripsi | Nilai default | Versi CCM yang didukung |
Menentukan versi IP dari instance NLB. Setelah instance dibuat, Anda tidak dapat mengubah versi IP. Nilai valid:
| ipv4 | 2.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}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip-version: "DualStack"
name: nginx
namespace: default
spec:
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: LoadBalancerTambahkan tag tambahan ke instance NLB
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-additional-resource-tags
Deskripsi | Nilai default | Versi CCM yang didukung |
Menambahkan tag tambahan ke instance. Pisahkan beberapa tag dengan koma (,), contohnya, | Tidak ada | 2.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}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-additional-resource-tags: "Key1=Value1,Key2=Value2"
name: nginx
namespace: default
spec:
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: LoadBalancerGunakan instance NLB yang ada
Anotasi: Beberapa, seperti yang ditunjukkan dalam tabel berikut.
Anotasi | Deskripsi | Nilai default | Versi CCM yang didukung |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id | ID dari instance NLB yang sudah ada. | Tidak ada | |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners | Menentukan apakah akan menyinkronkan konfigurasi listener NLB berdasarkan layanan. Nilai valid:
| false | 2.5.0 dan lebih baru |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id: "${your-nlb-id}" # ID dari instance NLB.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners: "true"
name: nginx
namespace: default
spec:
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: LoadBalancerLampirkan instance Bandwidth Internet Bersama
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-bandwidth-package-id
Deskripsi | Nilai default | Versi CCM yang didukung |
ID dari instance Bandwidth Internet Bersama yang akan dilampirkan. Anda dapat masuk ke Konsol VPC untuk menanyakan ID dari instance Bandwidth Internet Bersama. | Tidak ada | 2.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}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-bandwidth-package-id: "cbwp-xxxxxxxxxx"
name: nginx
namespace: default
spec:
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: LoadBalancerTentukan jenis jaringan untuk IPv6
Anotasi: Beberapa, seperti yang ditunjukkan dalam tabel berikut.
Anotasi | Deskripsi | Nilai default | Versi CCM yang didukung |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip-version | Menentukan versi IP dari instance NLB. Setelah instance dibuat, Anda tidak dapat mengubah versi IP. Saat menggunakan anotasi ini, mode kube-proxy klaster harus IPVS. Nilai valid:
| ipv4 | 2.5.0 dan lebih baru |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ipv6-address-type | Menentukan jenis jaringan IPv6 dari instance NLB. Nilai valid:
Catatan Saat Anda mengaktifkan alamat IPv6 publik, gateway IPv6 harus tersedia di VPC tempat instance NLB berada. Untuk informasi lebih lanjut, lihat Buat dan kelola gateway IPv6. | intranet | 2.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}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip-version: "DualStack"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ipv6-address-type: internet # Atur jenis jaringan IPv6 menjadi publik.
name: nginx
namespace: default
spec:
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: LoadBalancerPertahankan instance NLB yang dibuat otomatis saat menghapus layanan
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-preserve-lb-on-delete
Deskripsi | Versi CCM yang didukung |
Memperoleh kembali instance NLB yang dibuat oleh layanan saat Anda menghapus layanan LoadBalancer. Tag Saat fitur ini diaktifkan, sebuah event peringatan Nilai valid:
Penting Lakukan operasi ini dengan menghapus layanan bukan dengan mengubah tipe layanan. Jika tidak, layanan mungkin salah diasosiasikan ulang dengan instance NLB yang sebelumnya dipertahankan. | 2.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}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-preserve-lb-on-delete: "true"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancerOperasi listener tipikal
Atur grup keamanan untuk listener
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-security-group-ids
Deskripsi | Nilai default | Versi CCM yang didukung |
Mengatur grup keamanan untuk Pendengar. Pisahkan beberapa ID grup keamanan dengan koma (,), misalnya, | Tidak ada | 2.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}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-security-group-ids: "sg-aaaaa,sg-bbbbb" # Pisahkan beberapa grup keamanan dengan koma.
name: nginx
namespace: default
spec:
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: LoadBalancerKonfigurasikan protokol TCP dan UDP untuk listener
Deskripsi | Nilai default | Versi CCM yang didukung |
Fitur ini memerlukan versi klaster Kubernetes 1.24 atau lebih baru. Untuk informasi lebih lanjut tentang cara meningkatkan klaster, lihat Tingkatkan klaster ACK. | Tidak ada | Tidak berlaku |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
name: nginx
namespace: default
spec:
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: LoadBalancerBuat listener TCP
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
name: nginx
namespace: default
spec:
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: LoadBalancerBuat listener UDP
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
name: nginx
namespace: default
spec:
ports:
- name: udp
port: 80
protocol: UDP
targetPort: 80
selector:
app: nginx
sessionAffinity: None
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancerBuat listener TCP-over-SSL
Anotasi: Beberapa, seperti yang ditunjukkan dalam tabel berikut.
Anotasi | Deskripsi | Nilai default | Versi CCM yang didukung |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port | Menetapkan protokol untuk listener. Pisahkan beberapa nilai dengan koma (,), contohnya, | Tidak ada | 2.5.0 dan lebih baru |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id | ID sertifikat server. Anda dapat masuk ke Konsol Layanan Manajemen Sertifikat untuk membuat dan melihat sertifikat. | Tidak ada |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "tcpssl:443"
# Jika klaster berada di wilayah di daratan Tiongkok, ID sertifikat gabungan adalah ${your-cert-id}-cn-hangzhou.
# Jika klaster berada di wilayah luar daratan Tiongkok, ID sertifikat gabungan adalah ${your-cert-id}-ap-southeast-1.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${The combined certificate ID}"
name: nginx
namespace: default
spec:
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: LoadBalancerAktifkan autentikasi mutual
Anotasi: Beberapa, seperti yang ditunjukkan dalam tabel berikut.
Anotasi | Deskripsi | Nilai default | Versi CCM yang didukung |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port | Menetapkan protokol untuk listener. Pisahkan beberapa nilai dengan koma (,), contohnya, | Tidak ada | 2.5.0 dan lebih baru |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id | ID sertifikat server. Anda dapat masuk ke Konsol Layanan Manajemen Sertifikat untuk melihat sertifikat. | Tidak ada | |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cacert-id | ID sertifikat CA. Anda dapat masuk ke Konsol Layanan Manajemen Sertifikat untuk melihat sertifikat. | Tidak ada | |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cacert | Menentukan apakah akan mengaktifkan autentikasi mutual. Nilai valid:
| Tidak ada |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "tcpssl:443"
# Jika klaster berada di wilayah di daratan Tiongkok, ID sertifikat gabungan adalah ${your-cert-id}-cn-hangzhou.
# Jika klaster berada di wilayah luar daratan Tiongkok, ID sertifikat gabungan adalah ${your-cert-id}-ap-southeast-1.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${The combined certificate ID}"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cacert-id: "${your-cacert-id}" # ID sertifikat CA.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cacert: "on"
name: nginx
namespace: default
spec:
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: LoadBalancerAtur kebijakan keamanan TLS
Anotasi: Beberapa, seperti yang ditunjukkan dalam tabel berikut.
Anotasi | Deskripsi | Nilai default | Versi CCM yang didukung |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port | Menetapkan protokol untuk listener. Pisahkan beberapa nilai dengan koma (,), contohnya, | Tidak ada | 2.5.0 dan lebih baru |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id | ID sertifikat server. Anda dapat masuk ke Konsol Layanan Manajemen Sertifikat untuk melihat sertifikat. | Tidak ada | |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-tls-cipher-policy | ID kebijakan keamanan. Kebijakan keamanan sistem dan kebijakan keamanan kustom didukung. Nilai valid:
| 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}" # Misalnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "tcpssl:443"
# Jika kluster berada di wilayah di daratan Tiongkok, ID sertifikat gabungannya adalah ${your-cert-id}-cn-hangzhou.
# Jika kluster berada di wilayah di luar daratan Tiongkok, ID sertifikat gabungannya adalah ${your-cert-id}-ap-southeast-1.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${ID sertifikat gabungan}"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-tls-cipher-policy: "tls_cipher_policy_1_0"
name: nginx
namespace: default
spec:
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: LoadBalancerAtur mode Proxy Protocol
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-proxy-protocol
Deskripsi | Nilai default | Versi CCM yang didukung |
Menentukan apakah akan menggunakan Proxy Protocol untuk meneruskan alamat IP klien ke server backend. Nilai valid:
Penting Sebelum Anda mengaktifkan Proxy Protocol, pastikan bahwa Proxy Protocol v2 diaktifkan untuk layanan backend. Jika tidak, akses mungkin gagal. Konfigurasikan parameter ini dengan hati-hati. | off | 2.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}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-proxy-protocol: "on"
name: nginx
namespace: default
spec:
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: LoadBalancerBawa informasi tambahan melalui Proxy Protocol
Anotasi: Beberapa, seperti yang ditunjukkan dalam tabel berikut.
Anotasi | Deskripsi | Nilai default | Versi CCM yang didukung |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-proxy-protocol | Menentukan apakah akan menggunakan Proxy Protocol untuk meneruskan alamat IP klien ke server backend. Nilai valid:
Penting Sebelum Anda mengaktifkan Proxy Protocol, pastikan bahwa Proxy Protocol v2 diaktifkan untuk layanan backend. Jika tidak, akses mungkin gagal. Konfigurasikan parameter ini dengan hati-hati. | off | 2.5.0 dan lebih baru |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ppv2-pvl-vpc-id-enabled | Menentukan apakah akan membawa VpcId ke server backend melalui Proxy Protocol. Nilai valid:
| off | 2.9.1 dan lebih baru |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ppv2-pvl-ep-id-enabled | Menentukan apakah akan membawa PrivateLinkEpId ke server backend melalui Proxy Protocol. Nilai valid:
| off | 2.9.1 dan lebih baru |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ppv2-pvl-eps-id-enabled | Menentukan apakah akan membawa PrivateLinkEpsId ke server backend melalui Proxy Protocol. Nilai valid:
| off | 2.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}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-proxy-protocol: "on"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ppv2-pvl-ep-id-enabled: "on"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ppv2-pvl-eps-id-enabled: "on"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ppv2-pvl-vpc-id-enabled: "on"
name: nginx
namespace: default
spec:
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancerAtur jumlah maksimum koneksi baru per detik untuk listener
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cps
Deskripsi | Nilai default | Versi CCM yang Didukung |
Jumlah maksimum koneksi baru yang dapat dibuat per detik pada Instans NLB. Nilai valid: 0 hingga 1.000.000. Nilai 0 menunjukkan bahwa jumlah koneksi baru tidak terbatas. | Tidak ada | 2.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}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cps: "100"
name: nginx
namespace: default
spec:
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: LoadBalancerAtur periode timeout koneksi idle untuk listener
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-idle-timeout
Deskripsi | Nilai default | Versi CCM yang Didukung |
Periode timeout koneksi idle. Unit: detik. Nilai valid: 10 hingga 900. | 900 | 2.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}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-idle-timeout: "60"
name: nginx
namespace: default
spec:
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: LoadBalancerKonfigurasikan rentang port listener
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-listener-port-range
Deskripsi | Versi CCM yang didukung |
Dengan mengonfigurasi rentang port listener untuk penerusan semua port pada instance NLB, Anda dapat mendengarkan rentang port tertentu dan meneruskan lalu lintas ke port yang sesuai dari server backend. Formatnya adalah
| 2.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}" # Misalnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
# Konfigurasikan Pendengar 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 dari server backend. Nilainya harus berupa integer.
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 80
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancerOperasi kelompok server tipikal
Atur algoritma penjadwalan
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-scheduler
Deskripsi | Nilai default | Versi CCM yang didukung |
Algoritma penjadwalan. Nilai valid:
Untuk informasi lebih lanjut tentang nilai-nilai yang mungkin untuk opsi ini, lihat bidang | wrr | 2.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}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-scheduler: "sch"
name: nginx
namespace: default
spec:
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: LoadBalancerKonfigurasikan connection draining
Anotasi: Beberapa, seperti yang ditunjukkan dalam tabel berikut.
Anotasi | Deskripsi | Nilai default | Versi CCM yang didukung |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-connection-drain | Menentukan apakah akan mengaktifkan pengurasan koneksi. Nilai valid:
| off | 2.5.0 dan lebih baru |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-connection-drain-timeout | Periode timeout untuk pengurasan koneksi. Unit: detik. Nilai valid: 10 hingga 900. | Tidak ada |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-connection-drain: "on"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-connection-drain-timeout: "30"
name: nginx
namespace: default
spec:
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: LoadBalancerAktifkan pelestarian IP klien
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-preserve-client-ip
Deskripsi | Nilai default | Versi CCM yang didukung |
Menentukan apakah akan mengaktifkan pelestarian IP klien. Nilai yang valid:
| on | 2.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}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-preserve-client-ip: "on"
name: nginx
namespace: default
spec:
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: LoadBalancerKonfigurasikan health check TCP
Anotasi: Beberapa, seperti yang ditunjukkan dalam tabel berikut. Anotasi ini mengonfigurasi pemeriksaan kesehatan TCP. Semua anotasi berikut diperlukan. Pemeriksaan kesehatan diaktifkan secara default untuk port TCP.
Anotasi | Deskripsi | Nilai default | Versi CCM yang Didukung |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-flag | Menentukan apakah akan mengaktifkan health check. Nilai valid:
| on | |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-type | Protokol pemeriksaan kesehatan. Nilai yang valid:
| tcp | |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-port | Port pada server backend yang digunakan untuk pemeriksaan kesehatan. Nilai valid: 0 hingga 65535. Nilai default 0 menunjukkan bahwa port dari server backend digunakan. | 0 | |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout | Periode waktu maksimum untuk tanggapan pemeriksaan kesehatan. Satuan: detik. Nilai valid: 1 hingga 300. | 5 | |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold | Jumlah pemeriksaan kesehatan berhasil berturut-turut yang diperlukan sebelum server backend dinyatakan sehat. Nilai valid: 2 hingga 10. | 2 | |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold | Jumlah pemeriksaan kesehatan yang gagal secara berturut-turut yang diperlukan sebelum server backend dinyatakan tidak sehat. Nilai valid: 2 hingga 10. | 2 | |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval | Interval antara dua pemeriksaan kesehatan berturut-turut. Satuan: detik. Nilai valid: 1 hingga 50. | 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:
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: LoadBalancerKonfigurasikan health check HTTP
Anotasi: Beberapa, seperti yang ditunjukkan dalam tabel berikut. Anotasi ini mengonfigurasi pemeriksaan kesehatan HTTP. Semua anotasi berikut diperlukan. Pemeriksaan kesehatan diaktifkan secara default untuk port TCP.
Anotasi | Deskripsi | Nilai default | Versi CCM yang Didukung |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-flag | Menentukan apakah akan mengaktifkan pemeriksaan kesehatan. Nilai valid:
| on | 2.5.0 dan yang lebih baru |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-type | Protokol pemeriksaan kesehatan. Nilai yang valid:
| http | |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-uri | Path yang digunakan untuk pemeriksaan kesehatan. Path harus memiliki panjang 1 hingga 80 karakter dan dapat berisi huruf, angka, serta karakter khusus. Path harus dimulai dengan garis miring (/). Untuk informasi lebih lanjut, lihat CreateServerGroup. Catatan Parameter ini hanya berlaku jika | Tidak ada | |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-domain | Nama domain untuk pemeriksaan kesehatan. Nilai yang valid:
Catatan Parameter ini hanya berlaku ketika | Tidak ada | |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-port | Port pada server backend yang digunakan untuk pemeriksaan kesehatan. Nilai valid: 0 hingga 65535. Nilai default 0 menunjukkan bahwa port dari server backend digunakan. | 0 | |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout | Periode timeout maksimum untuk tanggapan pemeriksaan kesehatan. Satuan: detik. Nilai valid: 1 hingga 300. | 5 | |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold | Jumlah pemeriksaan kesehatan berhasil berturut-turut yang diperlukan sebelum server backend dinyatakan sehat. Nilai valid: 2 hingga 10. | 2 | |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold | Jumlah pemeriksaan kesehatan yang gagal secara berturut-turut yang diperlukan sebelum server backend dinyatakan tidak sehat. Nilai valid: 2 hingga 10. | 2 | |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval | Interval antara dua pemeriksaan kesehatan berturut-turut. Unit: detik. Nilai valid: 1 hingga 50. | 10 | |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-method | Metode pemeriksaan kesehatan. Nilai valid:
Catatan Parameter ini hanya berlaku saat |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-flag: "on"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-type: "http"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-uri: "/test/index.html"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-domain: "www.test.com"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold: "4"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold: "4"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout: "10"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval: "5"
# Atur metode pemeriksaan kesehatan. Anotasi ini opsional.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-method: "head"
name: nginx
namespace: default
spec:
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: LoadBalancerAtur tipe grup server
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-server-group-type
Deskripsi | Nilai default | Versi CCM yang didukung |
Mengatur tipe grup server. Nilai yang valid:
Untuk informasi lebih lanjut tentang klasifikasi dan deskripsi grup server NLB, lihat Grup server NLB. | Instance | 2.8.0 dan yang lebih baru |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-server-group-type: "Ip"
name: nginx
namespace: default
spec:
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: LoadBalancerGunakan kembali kelompok server yang ada
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vgroup-port
Anotasi ini memungkinkan Anda menggunakan kembali kelompok vServer yang ada. Anotasi ini hanya berlaku ketika Anda menggunakan kembali Instance NLB yang ada. Untuk contoh penggunaan, lihat Menyebarkan Layanan di Seluruh Kluster dengan Menggunakan Kembali Instance SLB yang Ada.
Tetapkan bobot layanan untuk menerima lalu lintas
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-weight
Ketika beberapa layanan menggunakan kembali Instance NLB yang sama, Anda dapat menggunakan anotasi ini untuk menetapkan bobot lalu lintas untuk layanan saat ini. Anotasi ini hanya berlaku ketika Anda menggunakan kembali kelompok server yang ada. Untuk contoh penggunaan, lihat Menyebarkan Layanan di Seluruh Kluster dengan Menggunakan Kembali Instance SLB yang Ada.
Abaikan pembaruan bobot server backend
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ignore-weight-update
Deskripsi | Versi CCM yang didukung |
Mengabaikan pembaruan bobot server backend dalam kelompok server selama sinkronisasi layanan. Konfigurasi ini cocok untuk skenario di mana Anda perlu mengelola bobot server backend secara manual. Nilai yang valid:
Nilai default: | 2.11.1 dan yang lebih baru |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ignore-weight-update: "on"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer