Anda dapat menggunakan anotasi dalam file YAML Service untuk mengaktifkan fitur load balancing tambahan pada Network Load Balancer (NLB), seperti menentukan jenis jaringan NLB, mengaktifkan perlindungan modifikasi, dan mengonfigurasi otentikasi timbal balik. Topik ini menjelaskan cara menggunakan anotasi tersebut untuk mengonfigurasi NLB. Konfigurasi dikelompokkan berdasarkan tiga jenis resource: instans NLB, listener, dan grup server.
Indeks
Kategori | Kategori fitur | Tautan konfigurasi |
Creation | ||
Instance configuration | ||
Creation | ||
Listener configuration | ||
Security configuration | ||
Server configuration | ||
Catatan
Pastikan kluster Anda menggunakan versi v1.24 atau lebih baru dan add-on Cloud Controller Manager (CCM) menggunakan versi v2.5.0 atau lebih baru. Untuk meningkatkan kluster, lihat Tingkatkan kluster secara manual; untuk meningkatkan add-on, lihat Kelola add-on.
Dalam definisi Service, atur
spec.loadBalancerClasskealibabacloud.com/nlb. Jika parameter ini tidak ditentukan, Classic Load Balancer (CLB) akan dibuat secara default.Setelah Service dibuat, Anda tidak dapat mengubah field
spec.loadBalancerClass. Anda tidak dapat mengonversi jenis load balancer dari CLB ke NLB atau sebaliknya.Anda tidak dapat mengelola instans NLB di Konsol ACK. Anda harus menggunakan perintah
kubectluntuk melakukan semua operasi manajemen.
Operasi NLB
Buat NLB publik
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps
Deskripsi | Versi CCM yang didukung |
Menentukan zona, vSwitch, alamat IP privat, dan informasi EIP untuk NLB. Formatnya sebagai berikut:
| Zona dan ID vSwitch: v2.5.0 atau lebih baru alamat IP privat 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}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancerBuat NLB privat
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type
Deskripsi | Versi CCM yang didukung |
Menentukan jenis jaringan NLB. Anda dapat mengubah nilai anotasi ini untuk beralih antara NLB publik dan privat. Nilai yang valid:
Default: Anda dapat login ke Konsol NLB untuk melihat wilayah dan zona yang didukung. Minimal dua zona diperlukan. Beberapa zona dipisahkan dengan koma, misalnya, | 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}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type: "intranet"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancerTentukan alamat IP privat
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps
Deskripsi | Versi CCM yang didukung |
Menentukan zona, vSwitch, alamat IP privat, dan informasi EIP untuk NLB. Formatnya sebagai berikut:
|
|
apiVersion: v1
kind: Service
metadata:
annotations:
# Contohnya, 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: LoadBalancerTentukan ID instans EIP
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps
Deskripsi | Versi CCM yang didukung |
Menentukan zona, vSwitch, alamat IP privat, dan informasi EIP untuk NLB. Formatnya sebagai berikut:
| Zona dan ID vSwitch: v2.5.0 atau lebih baru alamat IP privat dan EIP: v2.12.1 atau lebih baru |
apiVersion: v1
kind: Service
metadata:
annotations:
# Jika Anda tidak memerlukan alamat IP privat, biarkan kolom alamat IP privat kosong.
# Contohnya, 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: LoadBalancerTentukan nama load balancer
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-name
Deskripsi | Versi CCM yang didukung |
Menentukan nama instans load balancer. Nama harus terdiri dari 2 hingga 128 karakter, dimulai dengan huruf atau karakter Tionghoa, dan dapat berisi angka, titik (.), garis bawah (_), dan tanda hubung (-). | v2.5.0 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}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-name: "${your-nlb-name}" # Nama instans NLB.
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancerTentukan kelompok sumber daya
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-resource-group-id
Deskripsi | Versi CCM yang didukung |
Menentukan kelompok sumber daya untuk load balancer. ID kelompok sumber daya tidak dapat diubah setelah ditetapkan. Anda dapat menemukan ID kelompok sumber daya di Konsol Resource Management. | 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}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-resource-group-id: "${your-resource-group-id}" # ID kelompok sumber daya.
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancerBuat NLB dual-stack
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip-version
Untuk menyambungkan server backend IPv6, lihat Sambungkan server backend IPv6.
Deskripsi | Versi CCM yang didukung |
Mode kube-proxy kluster harus IPVS. Menentukan versi protokol IP untuk NLB. Versi protokol IP tidak dapat diubah setelah pembuatan. Nilai yang valid:
Default: | 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}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip-version: "DualStack"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
sessionAffinity: None
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancerTambahkan tag tambahan
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-additional-resource-tags
Deskripsi | Versi CCM yang didukung |
Anda dapat menambahkan tag tambahan. Gunakan koma (,) untuk memisahkan beberapa tag. Misalnya, Penting Setelah Anda menambahkan anotasi ini, semua modifikasi tag manual yang dilakukan pada instans load balancer di konsol 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}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-additional-resource-tags: "Key1=Value1,Key2=Value2"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
sessionAffinity: None
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancerGunakan load balancer yang sudah ada
Jangan menambahkan atau memodifikasi anotasi reuse untuk Service LoadBalancer yang sudah ada. Melakukannya dapat menyebabkan kegagalan reuse atau mencegah load balancer yang dibuat oleh CCM dilepas.
Anotasi: Beberapa anotasi digunakan, seperti yang dijelaskan dalam tabel berikut.
Anotasi | Deskripsi | Versi CCM yang didukung |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id | Menentukan ID load balancer yang sudah ada. | v2.5.0 atau lebih baru |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners | Menentukan apakah akan menyinkronkan konfigurasi listener NLB berdasarkan konfigurasi Service. Nilai yang valid:
Default: |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id: "${your-nlb-id}" # ID instans NLB.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners: "true"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
sessionAffinity: None
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancerBind paket bandwidth bersama
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-bandwidth-package-id
Deskripsi | Versi CCM yang didukung |
Menentukan ID paket bandwidth bersama yang akan di-bind. Anda dapat menemukan ID paket bandwidth 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}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-bandwidth-package-id: "cbwp-xxxxxxxxxx"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
sessionAffinity: None
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancerKonfigurasi penerusan lintas zona
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cross-zone-enabled
Deskripsi | Versi CCM yang didukung |
Menentukan apakah akan mengaktifkan penerusan lintas zona. Nilai yang valid:
Default: | v2.13.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}" # Contohnya, 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: LoadBalancerKonfigurasi daftar izin alamat IP sumber
Field: .spec.loadBalancerRanges
Deskripsi | Versi CCM yang didukung |
Fitur ini hanya berlaku untuk instans NLB yang dibuat dan dikelola oleh CCM. Fitur ini tidak didukung untuk instans yang digunakan kembali. Saat Anda mengonfigurasi field ini, CCM secara otomatis membuat grup keamanan, menetapkan aturan akses yang diperlukan, dan mengaitkan grup keamanan tersebut dengan instans NLB. Jika Anda tidak mengonfigurasi field ini atau membiarkannya kosong, tidak ada grup keamanan yang dikaitkan. Default: Kosong Penting
| v2.14.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}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321
name: nginx
namespace: default
spec:
# Tentukan blok CIDR alamat IP sumber yang diizinkan.
loadBalancerSourceRanges:
- 10.0.0.0/8
- 172.16.0.0/16
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: LoadBalancerTentukan jenis jaringan IPv6
Anotasi: Beberapa anotasi digunakan, seperti yang dijelaskan dalam tabel berikut.
Anotasi | Deskripsi | Versi CCM yang didukung |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip-version | Mode kube-proxy kluster harus IPVS. Anotasi ini menentukan versi protokol IP untuk NLB. Versi protokol IP tidak dapat diubah setelah pembuatan. Nilai yang valid:
Default: | v2.5.0 atau lebih baru |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ipv6-address-type | Menentukan jenis jaringan alamat IPv6 NLB. Nilai yang valid:
Default: Catatan Untuk menggunakan alamat IPv6 publik, gateway IPv6 harus ada di VPC tempat instans NLB ditempatkan. 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}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip-version: "DualStack"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ipv6-address-type: internet # Tentukan jenis jaringan 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: LoadBalancerOperasi listener
Atur grup keamanan listener
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-security-group-ids
Deskripsi | Versi CCM yang didukung |
Menentukan ID grup keamanan yang akan dikaitkan dengan listener. Pisahkan beberapa ID dengan koma (,), misalnya, | 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}" # 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 ID 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: LoadBalancerKonfigurasi listener TCP dan UDP
Deskripsi | Versi CCM yang didukung |
Fitur ini memerlukan Kubernetes v1.24 atau lebih baru. Untuk informasi selengkapnya tentang peningkatan kluster, lihat Tingkatkan kluster Kubernetes ACK. | Tidak tersedia |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: udp
port: 80
protocol: UDP
targetPort: 81
selector:
app: nginx
sessionAffinity: None
loadBalancerClass: "alibabacloud.com/nlb"
type: 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:
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: LoadBalancerBuat listener UDP
Jika Anda tidak menentukan pemeriksaan kesehatan saat membuat listener UDP, pemeriksaan kesehatan TCP akan diaktifkan secara default untuk grup server. Untuk listener UDP, kami merekomendasikan menggunakan anotasi untuk secara eksplisit menentukan pemeriksaan kesehatan UDP atau menonaktifkan pemeriksaan kesehatan.
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: udp
port: 80
protocol: UDP
targetPort: 80
selector:
app: nginx
sessionAffinity: None
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancerBuat listener TCPSSL
Anotasi: Lihat tabel berikut untuk anotasi yang diperlukan.
Anotasi | Deskripsi | Versi CCM yang didukung |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port | Menentukan protokol listener. Untuk menentukan beberapa protokol, pisahkan dengan koma (,), misalnya, | v2.5.0 atau lebih baru |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id | Untuk mendapatkan ID-nya, login ke Konsol Layanan Manajemen Sertifikat, buat sertifikat, dan temukan ID-nya di halaman SSL Certificate Management. Gambar berikut menunjukkan contohnya:
|
Saat ini, listener TCP/SSL tidak mendukung grup server dengan pelestarian alamat IP klien diaktifkan. Artinya, Anda tidak dapat mengonfigurasi anotasi service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "tcpssl:${port}" dan service.beta.kubernetes.io/alibaba-cloud-loadbalancer-preserve-client-ip: "on" secara bersamaan. Jika Anda perlu mendapatkan alamat IP klien melalui NLB, lihat Dapatkan alamat IP klien asli di server backend 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}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "tcpssl:443"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${CertIdentifier}"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 80
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancerKonfigurasi range port listener
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-listener-port-range
Deskripsi | Versi CCM yang didukung |
Fitur ini memerlukan plugin jaringan Terway. Anda dapat mengonfigurasi listener untuk mendengarkan pada range port tertentu. Instans NLB kemudian meneruskan trafik dari range port tersebut ke range port yang sama di server backend. Misalnya, jika Anda mengonfigurasi range port 80-100, trafik ke port 80 hingga 100 pada instans NLB diteruskan ke port 80 hingga 100 di server backend. Formatnya adalah
| 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}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
# Konfigurasi listener untuk range port 80-100 dan 400-500.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-listener-port-range: "80-100:80,400-500:443"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
# Konfigurasi port ini dipetakan ke range 80-100.
port: 80
protocol: TCP
# targetPort menentukan port pemeriksaan kesehatan untuk server backend dan harus berupa bilangan bulat.
targetPort: 80
- name: https
# Konfigurasi port ini dipetakan ke range 400-500.
port: 443
protocol: TCP
targetPort: 80
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancerAktifkan otentikasi timbal balik
Anotasi: Lihat tabel berikut untuk anotasi yang diperlukan.
Anotasi | Deskripsi | Versi CCM yang didukung |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port | Menentukan protokol listener. Untuk menentukan beberapa protokol, pisahkan dengan koma (,), misalnya, | v2.5.0 atau lebih baru |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id | Untuk mendapatkan ID-nya, login ke Konsol Layanan Manajemen Sertifikat, buat sertifikat, dan temukan ID-nya di halaman SSL Certificate Management. Gambar berikut menunjukkan contohnya:
| |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cacert-id | Untuk mendapatkan ID-nya, login ke Konsol Layanan Manajemen Sertifikat dan temukan ID-nya di detail sertifikat pada halaman PCA Certificate Management.
| |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cacert | Menentukan apakah akan mengaktifkan otentikasi timbal balik. Nilai yang valid:
Nilai default: |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "tcpssl:443"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${CertIdentifier}"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cacert-id: "${your-cacert-id}"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cacert: "on"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 80
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancerAtur kebijakan keamanan TLS
Anotasi: Lihat tabel berikut untuk anotasi yang diperlukan.
Anotasi | Deskripsi | Versi CCM yang didukung |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port | Menentukan protokol listener. Untuk menentukan beberapa protokol, pisahkan dengan koma (,), misalnya, | v2.5.0 atau lebih baru |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id | Untuk mendapatkan ID-nya, login ke Konsol Layanan Manajemen Sertifikat, buat sertifikat, dan temukan ID-nya di halaman SSL Certificate Management. Gambar berikut menunjukkan contohnya:
| |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-tls-cipher-policy | ID kebijakan keamanan TLS. Anda dapat menggunakan kebijakan keamanan yang ditentukan sistem atau kustom. Nilai yang valid:
Nilai default: |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "tcpssl:443"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${CertIdentifier}"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-tls-cipher-policy: "tls_cipher_policy_1_0"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 80
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancerAktifkan Proxy Protocol
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-proxy-protocol
Deskripsi | Versi CCM yang didukung |
Menentukan apakah akan menggunakan Proxy Protocol untuk meneruskan alamat IP klien ke server backend. Nilai yang valid:
Nilai default: Penting Sebelum mengaktifkan Proxy Protocol, pastikan layanan backend Anda mendukung Proxy Protocol v2. Jika tidak, koneksi akan gagal. Konfigurasikan parameter 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}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-proxy-protocol: "on"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancerKirim informasi tambahan melalui Proxy Protocol
Anotasi: Lihat tabel berikut untuk anotasi yang diperlukan.
Anotasi | Deskripsi | Versi CCM yang didukung |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-proxy-protocol | Menentukan apakah akan menggunakan Proxy Protocol untuk meneruskan alamat IP klien ke server backend. Nilai yang valid:
Nilai default: Penting Sebelum mengaktifkan Proxy Protocol, pastikan layanan backend Anda mendukung Proxy Protocol v2. Jika tidak, koneksi akan gagal. Konfigurasikan parameter ini dengan hati-hati. | v2.5.0 atau lebih baru |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ppv2-pvl-vpc-id-enabled | Menentukan apakah akan menggunakan Proxy Protocol untuk meneruskan VpcId ke server backend. Nilai yang valid:
Nilai default: | v2.9.1 atau lebih baru |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ppv2-pvl-ep-id-enabled | Menentukan apakah akan menggunakan Proxy Protocol untuk meneruskan PrivateLinkEpId ke server backend. Nilai yang valid:
Nilai default: | v2.9.1 atau lebih baru |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ppv2-pvl-eps-id-enabled | Menentukan apakah akan menggunakan Proxy Protocol untuk meneruskan PrivateLinkEpsId ke server backend. Nilai yang valid:
Nilai default: | 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}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-proxy-protocol: "on"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ppv2-pvl-ep-id-enabled: "on"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ppv2-pvl-eps-id-enabled: "on"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ppv2-pvl-vpc-id-enabled: "on"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancerAtur batas laju koneksi listener
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cps
Deskripsi | Versi CCM yang didukung |
Jumlah maksimum koneksi baru per detik untuk instans Network Load Balancer (NLB). Nilainya harus berupa bilangan bulat dari 0 hingga 1.000.000. Nilai 0 menunjukkan tidak ada batasan. | 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}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cps: "100"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancerAtur timeout idle listener
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-idle-timeout
Deskripsi | Versi CCM yang didukung |
Timeout koneksi idle dalam satuan detik. Nilai yang valid: 10 hingga 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}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-idle-timeout: "60"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancerAtur kebijakan ALPN
Anotasi: Lihat tabel berikut untuk anotasi yang diperlukan.
Anotasi | Deskripsi | Versi CCM yang didukung |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port | Menentukan protokol listener. Untuk menentukan beberapa protokol, pisahkan dengan koma (,), misalnya, | v2.5.0 atau lebih baru |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id | Untuk mendapatkan ID-nya, login ke Konsol Layanan Manajemen Sertifikat, buat sertifikat, dan temukan ID-nya di halaman SSL Certificate Management. Gambar berikut menunjukkan contohnya:
| |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-alpn | Menentukan apakah akan mengaktifkan Application-Layer Protocol Negotiation (ALPN). Nilai yang valid:
Nilai default: | v2.10.0 atau lebih baru |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-alpn-policy | Kebijakan ALPN. Nilai yang valid:
Untuk informasi selengkapnya, lihat parameter |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "tcpssl:443"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${CertIdentifier}"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-alpn: "on"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-alpn-policy: "HTTP1Only"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 80
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancerKonfigurasi sertifikat tambahan
Anotasi | Deskripsi | Versi CCM yang didukung |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port | Menentukan protokol listener. Untuk menentukan beberapa protokol, pisahkan dengan koma (,), misalnya, | v2.5.0 atau lebih baru |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id | Untuk mendapatkan ID-nya, login ke Konsol Layanan Manajemen Sertifikat, buat sertifikat, dan temukan ID-nya di halaman SSL Certificate Management. Gambar berikut menunjukkan contohnya:
| |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-additional-cert-ids | ID sertifikat tambahan. Pisahkan beberapa ID sertifikat dengan koma (,). Untuk mendapatkan ID-nya, login ke Konsol Layanan Manajemen Sertifikat, buat sertifikat, dan temukan ID-nya di halaman SSL Certificate Management. Gambar berikut menunjukkan contohnya:
| v2.13.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}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "tcpssl:443"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${CertIdentifier}"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-additional-cert-ids: "${CertIdentifier-1},${CertIdentifier-2}" # Pisahkan beberapa ID 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: LoadBalancerOperasi umum untuk grup server
Algoritma penjadwalan
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-scheduler
Deskripsi | Versi CCM yang didukung |
Algoritma penjadwalan. Nilai yang valid:
Nilai default: Untuk informasi selengkapnya tentang nilai anotasi ini, lihat parameter | 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}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-scheduler: "sch"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancerPengurasan koneksi
Anotasi: Beberapa anotasi tersedia, seperti yang dijelaskan dalam tabel berikut.
Anotasi | Deskripsi | Versi CCM yang didukung |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-connection-drain | Menentukan apakah akan mengaktifkan pengurasan koneksi. Jika diaktifkan, perilaku berikut terjadi saat server backend dihapus atau gagal dalam pemeriksaan kesehatan:
Nilai default: | v2.5.0 atau lebih baru |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-connection-drain-timeout | Periode timeout untuk pengurasan koneksi.
|
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-connection-drain: "on"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-connection-drain-timeout: "30"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancerPelestarian IP klien
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-preserve-client-ip
Deskripsi | Versi CCM yang didukung |
Menentukan apakah akan mengaktifkan pelestarian IP klien. Nilai yang valid:
Nilai default: | 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}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-preserve-client-ip: "on"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancerPemeriksaan kesehatan TCP
Anotasi: Beberapa anotasi tersedia, seperti yang dijelaskan dalam tabel berikut. Untuk mengonfigurasi pemeriksaan kesehatan TCP, semua anotasi berikut wajib digunakan. Secara default, pemeriksaan kesehatan diaktifkan untuk port TCP.
Anotasi | Deskripsi |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-flag | Menentukan apakah akan mengaktifkan pemeriksaan kesehatan. Nilai yang valid:
Nilai default: |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-type | Protokol pemeriksaan kesehatan. Nilai yang valid:
Nilai default: |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-port | Port pada server backend yang digunakan untuk pemeriksaan kesehatan. Nilai yang valid: |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout | Waktu maksimum untuk menunggu respons pemeriksaan kesehatan. Unit: detik. Nilai yang valid: Nilai default: 5 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold | Jumlah pemeriksaan kesehatan sukses berturut-turut yang diperlukan agar server backend dianggap sehat. Nilai yang valid: Nilai default: 2 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold | Jumlah pemeriksaan kesehatan gagal berturut-turut yang diperlukan agar server backend dianggap tidak sehat. Nilai yang valid: Nilai default: 2 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval | Interval antara pemeriksaan kesehatan berturut-turut. Unit: detik. Nilai yang valid: Nilai default: 5 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-flag: "on"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-type: "tcp"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout: "8"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold: "4"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold: "4"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval: "5"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancerPemeriksaan kesehatan UDP
Anotasi: Beberapa anotasi tersedia, dan semuanya wajib digunakan. Untuk menggunakan pemeriksaan kesehatan UDP, pastikan semua port yang didefinisikan dalam Service menggunakan protokol UDP.
Anotasi | Deskripsi |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-flag | Menentukan apakah akan mengaktifkan pemeriksaan kesehatan. Nilai yang valid:
Nilai default: |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-type | Protokol pemeriksaan kesehatan. Nilai yang valid:
Nilai default: |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-port | Port server yang digunakan untuk pemeriksaan kesehatan. Nilai yang valid: |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout | Timeout respons untuk satu pemeriksaan kesehatan. Jika terjadi timeout, pemeriksaan saat ini dianggap gagal. Unit: detik. Rentang nilai: |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold | Server backend dianggap sehat setelah melewati jumlah pemeriksaan kesehatan sukses berturut-turut yang ditentukan. Nilai yang valid: |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold | Nilai default: 2 Server backend dianggap tidak sehat setelah jumlah kegagalan pemeriksaan kesehatan berturut-turut ini. Nilai yang valid: |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval | Interval antara pemeriksaan kesehatan berturut-turut. Unit: detik. Rentang nilai: Nilai ini harus lebih besar dari nilai |
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: "udp"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout: "3"
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: udp
port: 80
protocol: UDP
targetPort: 80
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancerPemeriksaan kesehatan HTTP
Anotasi: Beberapa anotasi tersedia, seperti yang dijelaskan dalam tabel berikut. Untuk mengonfigurasi pemeriksaan kesehatan HTTP, semua anotasi berikut wajib digunakan. Secara default, pemeriksaan kesehatan menggunakan protokol TCP.
Anotasi | Deskripsi | Versi CCM yang didukung |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-flag | Menentukan apakah akan mengaktifkan pemeriksaan kesehatan. Nilai yang valid:
Nilai default: | v2.5.0 atau lebih baru |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-type | Protokol pemeriksaan kesehatan. Nilai yang valid:
Nilai default: | |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-uri | Jalur untuk pemeriksaan kesehatan. Harus terdiri dari 1 hingga 80 karakter, dimulai dengan garis miring ( Catatan Parameter ini hanya berlaku saat | |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-domain | Nama domain yang digunakan untuk pemeriksaan kesehatan. Nilai yang valid:
Catatan Parameter ini hanya berlaku saat | |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-port | Port pada server backend yang digunakan untuk pemeriksaan kesehatan. Nilai yang valid: | |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout | Waktu maksimum untuk menunggu respons pemeriksaan kesehatan. Unit: detik. Nilai yang valid: Nilai default: 5 | |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold | Jumlah pemeriksaan kesehatan sukses berturut-turut yang diperlukan agar server backend dianggap sehat. Nilai yang valid: Nilai default: 2 | |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold | Jumlah pemeriksaan kesehatan gagal berturut-turut yang diperlukan agar server backend dianggap tidak sehat. Nilai yang valid: Nilai default: 2 | |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval | Interval antara pemeriksaan kesehatan berturut-turut. Unit: detik. Nilai yang valid: Nilai default: 5 | |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-method | Metode pemeriksaan kesehatan. Nilai yang 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:
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: LoadBalancerJenis grup server
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-server-group-type
Deskripsi | Versi CCM yang didukung |
Jenis grup server. Nilai yang valid:
Nilai default: Untuk informasi selengkapnya tentang jenis grup server NLB, lihat Grup server. | 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}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-server-group-type: "Ip"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancerServer backend IPv6
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-backend-ip-version
Deskripsi | Versi CCM yang didukung |
Versi IP server backend dalam grup server.
Nilai default: ipv4 Catatan Saat Anda menambahkan server backend IPv4 dan IPv6 ke grup server, penggunaan kuota pod menjadi dua kali lipat. |
|
Gunakan kembali grup server
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vgroup-port
Anotasi ini memungkinkan Anda menggunakan kembali grup server yang sudah ada. Anotasi ini hanya berlaku saat Anda menggunakan kembali instans NLB yang sudah ada. Untuk contoh, lihat Sebarkan layanan lintas kluster dengan menggunakan kembali load balancer.
Bobot trafik layanan
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-weight
Dalam skenario di mana beberapa Service menggunakan kembali instans NLB yang sama, Anda dapat menggunakan anotasi ini untuk mengatur bobot trafik untuk Service saat ini. Anotasi ini hanya berlaku saat Anda menggunakan kembali grup server yang sudah ada. Untuk contoh, lihat Sebarkan layanan lintas kluster dengan menggunakan kembali load balancer.
Mengabaikan pembaruan bobot
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ignore-weight-update
Deskripsi | Versi CCM yang didukung |
Saat diatur ke
Nilai default: | 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}" # 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: LoadBalancerBobot default server backend
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-default-weight
Deskripsi | Versi CCM yang didukung |
Bobot default server backend dalam grup server. Bobot yang lebih tinggi berarti server menerima bagian trafik masuk yang lebih besar. Jumlahnya meningkat. Nilai yang valid: Konfigurasi ini tidak berlaku saat instans backend adalah instans ECS dan | v2.14.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}" # Contohnya, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321
# Atur bobot default server dalam grup server menjadi 35.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-default-weight: "35"
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
