Untuk mengaktifkan fitur load balancing yang lengkap, konfigurasikan instans CLB, pendengar, dan kelompok server backend dengan menambahkan anotasi ke file YAML Service Anda.
Indeks
|
Kategori |
Kategori fitur |
Tautan konfigurasi |
|
Create load balancer |
||
|
Specify existing instance |
||
|
Configure load balancer |
||
|
Enable instance protection |
||
|
Session persistence settings |
||
|
Port and protocol configuration |
||
|
Advanced Configuration |
|
|
|
Configuration Management |
||
Catatan penggunaan anotasi
-
Nilai anotasi bersifat case-sensitive.
-
Sebelum menggunakan anotasi, periksa versi komponen CCM yang didukung untuk setiap fitur dalam dokumen ini. Untuk meningkatkan komponen CCM, lihat Components. Untuk catatan perubahan komponen CCM, lihat Cloud Controller Manager.
-
Mulai 11 September 2019, awalan untuk bidang
annotationsberubah darialicloudmenjadialibaba-cloud.Contoh:
Sebelum pembaruan:
service.beta.kubernetes.io/alicloud-loadbalancer-idSetelah pembaruan:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-idSistem tetap kompatibel dengan awalan
alicloud. Tidak diperlukan perubahan.
Operasi CLB umum
Buat instans SLB publik
apiVersion: v1
kind: Service
metadata:
name: nginx
namespace: default
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
Buat instans SLB internal
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type
|
Deskripsi |
Versi CCM yang didukung |
|
Tentukan instans SLB sebagai internal-facing. Nilai yang valid:
Nilai default: Lihat Tentukan vSwitch untuk instans SLB untuk menentukan vSwitch secara manual untuk CLB. Jika tidak ditentukan, sistem akan memilihnya secara otomatis berdasarkan versi CCM:
|
v1.9.3 dan lebih baru |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type: "intranet"
name: nginx
namespace: default
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
Tentukan spesifikasi instans SLB
Anotasi: Multiple, seperti tercantum dalam tabel berikut.
|
Anotasi |
Deskripsi |
Versi CCM yang didukung |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-instance-charge-type |
Metode penagihan untuk instans. Nilai yang valid:
Nilai default: Penting
|
v2.4.0 dan lebih baru |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-spec |
Spesifikasi instans SLB. Gunakan parameter ini untuk membuat instans SLB dengan spesifikasi tertentu atau memperbarui spesifikasi instans SLB yang sudah ada. Nilai yang valid:
Nilai default: Untuk nilai valid lainnya, lihat CreateLoadBalancer. Penting
Jika Anda memodifikasi spesifikasi SLB di konsol CLB (hanya didukung untuk instans SLB berbasis spesifikasi), CCM mungkin mengembalikannya ke spesifikasi asli. Lakukan dengan hati-hati. |
v1.9.3 dan lebih baru |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-instance-charge-type: "PayBySpec"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-spec: "slb.s1.small"
name: nginx
namespace: default
spec:
ports:
- port: 443
protocol: TCP
targetPort: 443
selector:
run: nginx
type: LoadBalancer
Gunakan instans SLB yang sudah ada
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id
|
Deskripsi |
Versi CCM yang didukung |
|
Penting
ID instans SLB. Gunakan anotasi ini untuk menentukan CLB yang sudah ada.
|
v1.9.3.81-gca19cd4-aliyun dan lebih baru |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id: "${YOUR_LOADBALANCER_ID}"
name: nginx
namespace: default
spec:
ports:
- port: 443
protocol: TCP
targetPort: 443
selector:
run: nginx
type: LoadBalancer
Gunakan instans SLB yang sudah ada dan paksa mengganti pendengar yang ada
Anotasi: Multiple, seperti tercantum dalam tabel berikut. Memaksa mengganti pendengar yang ada akan menghapus pendengar yang bertentangan.
|
Anotasi |
Deskripsi |
Versi CCM yang didukung |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id |
Penting
Untuk menghindari perilaku tak terduga seperti ketidaktersediaan kluster atau gangguan trafik, jangan gunakan kembali instans CLB API Server atau instans CLB yang dibuat oleh CCM. Buat instans baru secara manual di konsol Classic Load Balancer (CLB). ID instans SLB. Gunakan anotasi ini untuk menentukan CLB yang sudah ada.
|
v1.9.3.81-gca19cd4-aliyun dan lebih baru |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners |
Saat mengikat ke SLB yang sudah ada, tentukan apakah akan menyinkronkan konfigurasi pendengar CLB berdasarkan Service.
Nilai default: Penting
Saat menggunakan kembali CLB yang sudah ada dan mengatur |
v1.9.3.81-gca19cd4-aliyun dan lebih baru |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id: "${YOUR_LOADBALANCER_ID}"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners: "true"
name: nginx
namespace: default
spec:
ports:
- port: 443
protocol: TCP
targetPort: 443
selector:
run: nginx
type: LoadBalancer
Tentukan zona primer dan sekunder saat membuat instans SLB
Anotasi: Multiple, seperti tercantum dalam tabel berikut. Zona primer dan sekunder tidak dapat dimodifikasi setelah pembuatan.
Instans SLB di beberapa wilayah tidak mendukung zona primer dan sekunder. Lihat halaman pembuatan CLB untuk detailnya.
|
Anotasi |
Deskripsi |
Versi CCM yang didukung |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-master-zoneid |
ID zona server backend primer. |
v1.9.3.10-gfb99107-aliyun dan lebih baru |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-slave-zoneid |
ID zona server backend cadangan. |
v1.9.3.10-gfb99107-aliyun dan lebih baru |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-master-zoneid: "cn-hangzhou-k"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-slave-zoneid: "cn-hangzhou-j"
name: nginx
namespace: default
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
Buat instans SLB berbasis bandwidth
Anotasi: Multiple, seperti tercantum dalam tabel berikut. Kedua anotasi wajib digunakan.
|
Anotasi |
Deskripsi |
Versi CCM yang didukung |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-charge-type |
Metode penagihan untuk instans SLB. Nilai yang valid:
Nilai default: |
v1.9.3 dan lebih baru |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-bandwidth |
Bandwidth instans SLB, mewakili bandwidth puncak. Nilai default: 50. Hanya berlaku untuk instans SLB publik. Untuk batasan lainnya, lihat Ubah metode penagihan untuk instans SLB publik. |
v1.9.3.10-gfb99107-aliyun dan lebih baru |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-charge-type: "paybybandwidth"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-bandwidth: "2"
name: nginx
namespace: default
spec:
ports:
- port: 443
protocol: TCP
targetPort: 443
selector:
run: nginx
type: LoadBalancer
Tentukan vSwitch untuk instans SLB
Anotasi: Multiple, seperti tercantum dalam tabel berikut. Kedua anotasi wajib digunakan.
|
Anotasi |
Deskripsi |
Versi CCM yang didukung |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type |
Tentukan instans SLB sebagai internal-facing. Nilai yang valid:
Nilai default: |
v1.9.3 dan lebih baru |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vswitch-id |
ID vSwitch instans SLB. vSwitch harus berada dalam VPC yang sama dengan kluster Kubernetes. Saat mengatur parameter ini, atur juga Login ke konsol Virtual Private Cloud untuk mencari ID vSwitch. |
v1.9.3 dan lebih baru |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type: "intranet"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vswitch-id: "${YOUR_VSWITCH_ID}"
name: nginx
namespace: default
spec:
ports:
- port: 443
protocol: TCP
targetPort: 443
selector:
run: nginx
type: LoadBalancer
Tentukan alamat IP untuk SLB internal
Anotasi: Multiple, seperti tercantum dalam tabel berikut. Ketiga anotasi wajib digunakan.
|
Anotasi |
Deskripsi |
Versi CCM yang didukung |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type |
Tentukan instans SLB sebagai internal-facing. Nilai yang valid:
Nilai default: |
v1.9.3 dan lebih baru |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vswitch-id |
ID vSwitch instans SLB. vSwitch harus berada dalam VPC yang sama dengan kluster Kubernetes. Saat mengatur parameter ini, atur juga Login ke konsol Virtual Private Cloud untuk mencari ID vSwitch. |
v1.9.3 dan lebih baru |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip |
Alamat IP instans SLB internal.
|
v2.7.0 dan lebih baru |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type: "intranet"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vswitch-id: "${YOUR_VSWITCH_ID}"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip: "192.168.x.x"
name: nginx
namespace: default
spec:
type: LoadBalancer
ports:
- port: 80
targetPort: 80
name: http
selector:
app: nginx
Tambahkan tag tambahan ke instans SLB
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-additional-resource-tags
|
Deskripsi |
Versi CCM yang didukung |
|
Daftar tag yang akan ditambahkan. Pisahkan beberapa tag dengan koma Inggris (,). Contoh: Penting
Setelah menambahkan anotasi ini untuk menentukan tag tambahan, modifikasi tag manual yang dilakukan pada instans SLB yang sesuai di konsol mungkin ditimpa. |
v1.9.3 dan lebih baru |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-additional-resource-tags: "Key1=Value1,Key2=Value2"
name: nginx
namespace: default
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
Buat instans SLB IPv6
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip-version
|
Deskripsi |
Versi CCM yang didukung |
|
Versi IP instans SLB. Jenis IP tidak dapat diubah setelah pembuatan. Saat menggunakan fitur ini, pastikan mode proxy kube-proxy kluster Anda adalah IPVS. Nilai yang valid:
Nilai default: |
v1.9.3.220-g24b1885-aliyun dan lebih baru |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip-version: "ipv6"
name: nginx
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
app: nginx
type: LoadBalancer
Aktifkan perlindungan penghapusan untuk instans SLB
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-delete-protection
|
Deskripsi |
Versi CCM yang didukung |
|
Perlindungan penghapusan untuk instans SLB. Nilai yang valid:
Nilai default: Penting
Untuk instans SLB yang dibuat oleh Service tipe LoadBalancer, meskipun Anda mengaktifkan perlindungan penghapusan secara manual di konsol CLB, Anda tetap dapat menghapus instans SLB terkait dengan menjalankan |
v1.9.3.313-g748f81e-aliyun dan lebih baru |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-delete-protection: "on"
name: nginx
spec:
externalTrafficPolicy: Local
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
app: nginx
type: LoadBalancer
Aktifkan mode baca-saja konfigurasi untuk instans SLB
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-modification-protection
|
Deskripsi |
Versi CCM yang didukung |
|
Perlindungan modifikasi konfigurasi untuk instans SLB. Nilai yang valid:
Nilai default: |
v1.9.3.313-g748f81e-aliyun dan lebih baru |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-modification-protection: "ConsoleProtection"
name: nginx
spec:
externalTrafficPolicy: Local
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
app: nginx
type: LoadBalancer
Tentukan nama instans SLB
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-name
|
Deskripsi |
Versi CCM yang didukung |
|
Nama instans SLB. Nama harus terdiri dari 2–128 karakter, dimulai dengan huruf atau karakter Tionghoa, dan dapat berisi angka, titik (.), garis bawah (_), dan tanda hubung (-). |
v1.9.3.313-g748f81e-aliyun dan lebih baru |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-name: "your-svc-name"
name: nginx
spec:
externalTrafficPolicy: Local
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
app: nginx
type: LoadBalancer
Tentukan kelompok sumber daya untuk instans SLB
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-resource-group-id
|
Deskripsi |
Versi CCM yang didukung |
|
ID kelompok sumber daya instans SLB. Setelah ditentukan, ID kelompok sumber daya tidak dapat dimodifikasi. Cari ID kelompok sumber daya di konsol Alibaba Cloud Resource Management. |
v1.9.3.313-g748f81e-aliyun dan lebih baru |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-resource-group-id: "rg-xxxx"
name: nginx
spec:
externalTrafficPolicy: Local
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
app: nginx
type: LoadBalancer
Atur hostname untuk Service
Anotasi: Multiple, seperti tercantum dalam tabel berikut.
|
Anotasi |
Deskripsi |
Versi CCM yang didukung |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port |
Pisahkan beberapa nilai dengan koma Inggris (,). Contoh: |
v1.9.3 dan lebih baru |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-hostname |
Atur hostname untuk Service. Hostname harus mematuhi aturan penamaan DNS. Perhatikan hal berikut:
|
v2.3.0 dan lebih baru |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "http:80"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-hostname: "${your_service_hostname}"
name: nginx-svc
namespace: default
spec:
ports:
- name: http
port: 80
protocol: TCP
targetPort: 80
selector:
app: nginx
type: LoadBalancer
Output yang diharapkan:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
nginx-svc loadBalancer 47.100.XX.XX www.example.com 80:30248/TCP,443:32670/TCP 10s
Buat instans SLB berbasis penggunaan
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-instance-charge-type
|
Deskripsi |
Versi CCM yang didukung |
|
Metode penagihan untuk instans. Nilai yang valid:
Nilai default: Penting
|
v2.4.0 dan lebih baru |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-instance-charge-type: "PayByCLCU"
name: nginx
namespace: default
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
Operasi pendengar umum
Konfigurasi timeout persistensi sesi untuk SLB TCP
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-persistence-timeout
|
Deskripsi |
Versi CCM yang didukung |
|
Timeout persistensi sesi. Hanya berlaku untuk pendengar TCP. Jika instans SLB memiliki beberapa pendengar TCP, pengaturan ini berlaku untuk semua pendengar TCP secara default. Unit: detik. Rentang valid: [0, 3600]. Nilai default: 0 (persistensi sesi dinonaktifkan). Untuk informasi lebih lanjut, lihat CreateLoadBalancerTCPListener. |
v1.9.3 dan lebih baru |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-persistence-timeout: "1800"
name: nginx
namespace: default
spec:
ports:
- port: 443
protocol: TCP
targetPort: 443
selector:
run: nginx
type: LoadBalancer
Konfigurasi persistensi sesi (insert cookie) untuk pendengar HTTP dan HTTPS
Anotasi: Multiple, seperti tercantum dalam tabel berikut. Keempat anotasi wajib digunakan saat memasukkan cookie.
-
Hanya berlaku untuk instans SLB HTTP dan HTTPS.
-
Jika beberapa pendengar HTTP atau HTTPS dikonfigurasi, persistensi sesi berlaku untuk semua pendengar HTTP dan HTTPS secara default.
|
Anotasi |
Deskripsi |
Versi CCM yang didukung |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-session |
Aktifkan persistensi sesi. Hanya berlaku untuk pendengar HTTP dan HTTPS. Nilai yang valid:
Nilai default: Untuk informasi lebih lanjut, lihat CreateLoadBalancerHTTPListener dan CreateLoadBalancerHTTPSListener. |
v1.9.3 dan lebih baru |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-session-type |
Metode penanganan cookie. Hanya berlaku untuk pendengar HTTP dan HTTPS. Wajib saat
Untuk informasi lebih lanjut, lihat CreateLoadBalancerHTTPListener dan CreateLoadBalancerHTTPSListener. |
v1.9.3 dan lebih baru |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cookie-timeout |
Timeout cookie. Wajib saat Untuk informasi lebih lanjut, lihat CreateLoadBalancerHTTPListener dan CreateLoadBalancerHTTPSListener. |
v1.9.3 dan lebih baru |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cookie |
Nama cookie yang dikonfigurasi di server. Panjang: 1–200 karakter. Hanya dapat berisi huruf ASCII dan angka. Tidak boleh berisi koma (,), titik koma (;), spasi, atau dimulai dengan tanda dolar ($). Wajib saat Untuk informasi lebih lanjut, lihat CreateLoadBalancerHTTPListener dan CreateLoadBalancerHTTPSListener. |
v1.9.3 dan lebih baru |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port |
Pisahkan beberapa nilai dengan koma Inggris (,). Contoh: |
v1.9.3 dan lebih baru |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-session: "on"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-session-type: "insert"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cookie-timeout: "1800"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "http:80"
name: nginx
namespace: default
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
Konfigurasi kelompok kebijakan kontrol akses untuk SLB
Anotasi: Multiple, seperti tercantum dalam tabel berikut. Ketiga anotasi wajib digunakan.
Sebelum menggunakan anotasi ini untuk membuat SLB dengan kontrol akses, buat kelompok kebijakan kontrol akses di konsol Classic Load Balancer CLB dan catat ID-nya (acl-id).
|
Anotasi |
Deskripsi |
Versi CCM yang didukung |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-acl-status |
Aktifkan kontrol akses. Nilai yang valid:
Nilai default: |
v1.9.3.164-g2105d2e-aliyun dan lebih baru |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-acl-id |
ID kelompok kebijakan kontrol akses yang diikat ke pendengar. Wajib saat |
v1.9.3.164-g2105d2e-aliyun dan lebih baru |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-acl-type |
Jenis kontrol akses. Nilai yang valid:
|
v1.9.3.164-g2105d2e-aliyun dan lebih baru |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-acl-status: "on"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-acl-id: "${YOUR_ACL_ID}" # Tidak mendukung beberapa kelompok kebijakan.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-acl-type: "white"
name: nginx
namespace: default
spec:
ports:
- port: 443
protocol: TCP
targetPort: 443
selector:
run: nginx
type: LoadBalancer
Tentukan port pengalihan untuk SLB
Pengalihan port mengarahkan permintaan HTTP ke port HTTPS.
Anotasi: Multiple, seperti tercantum dalam tabel berikut. Ketiga anotasi wajib digunakan.
|
Anotasi |
Deskripsi |
Versi CCM yang didukung |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port |
Pisahkan beberapa nilai dengan koma Inggris (,). Contoh: |
v1.9.3 dan lebih baru |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id |
ID sertifikat di Alibaba Cloud. Login ke konsol CLB dan lihat ID sertifikat di halaman Certificates. Catatan
Untuk membuat sertifikat, lihat Pilih sertifikat yang dikeluarkan Alibaba Cloud. |
v1.9.3.164-g2105d2e-aliyun dan lebih baru |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-forward-port |
Arahkan permintaan HTTP ke port HTTPS tertentu. Contoh: |
v1.9.3.164-g2105d2e-aliyun dan lebih baru |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "https:443,http:80"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${YOUR_CERT_ID}"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-forward-port: "80:443"
name: nginx
namespace: default
spec:
ports:
- name: https
port: 443
protocol: TCP
targetPort: 80
- name: http
port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
Atur algoritma penjadwalan untuk SLB
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-scheduler
|
Deskripsi |
Versi CCM yang didukung |
|
Algoritma penjadwalan. Nilai yang valid:
Nilai default: Untuk nilai valid lainnya, lihat bidang |
v1.9.3 dan lebih baru |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-scheduler: "wrr"
name: nginx
namespace: default
spec:
ports:
- port: 443
protocol: TCP
targetPort: 443
selector:
run: nginx
type: LoadBalancer
Buat pendengar UDP
apiVersion: v1
kind: Service
metadata:
name: nginx
namespace: default
spec:
ports:
- port: 80
protocol: UDP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
Buat pendengar HTTP
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port
-
Pemeriksaan kesehatan: Pemeriksaan kesehatan pendengar HTTP dinonaktifkan secara default. Untuk memastikan ketersediaan layanan backend, konfigurasikan pemeriksaan kesehatan HTTP atau TCP untuk port pendengar.
-
Akses dalam kluster: Saat mengakses layanan melalui IP CLB dari dalam kluster, trafik permintaan mungkin terpotong secara internal, menyebabkan masalah akses. Lihat Atur hostname untuk Service untuk memaksa trafik melewati CLB dengan menambahkan anotasi. Untuk detailnya, lihat Catatan tentang mengakses External IP Service LoadBalancer dari dalam kluster.
|
Deskripsi |
Versi CCM yang didukung |
|
Pisahkan beberapa nilai dengan koma Inggris (,). Contoh: |
v1.9.3 dan lebih baru |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "http:80"
name: nginx
namespace: default
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
Buat pendengar HTTPS
Anotasi: Multiple, seperti tercantum dalam tabel berikut.
Permintaan HTTPS didekripsi di lapisan CLB dan dikirim ke pod backend sebagai permintaan HTTP.
-
Pemeriksaan kesehatan: Pemeriksaan kesehatan pendengar HTTPS dinonaktifkan secara default. Untuk memastikan ketersediaan layanan backend, konfigurasikan pemeriksaan kesehatan HTTP atau TCP untuk port pendengar.
-
Akses dalam kluster: Saat mengakses layanan melalui IP CLB dari dalam kluster, trafik permintaan mungkin terpotong secara internal, menyebabkan masalah akses. Lihat Atur hostname untuk Service untuk memaksa trafik melewati CLB dengan menambahkan anotasi. Untuk detailnya, lihat Catatan tentang mengakses External IP Service LoadBalancer dari dalam kluster.
|
Anotasi |
Deskripsi |
Versi CCM yang didukung |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port |
Pisahkan beberapa nilai dengan koma Inggris (,). Contoh: |
v1.9.3 dan lebih baru |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id |
ID sertifikat di Alibaba Cloud. Login ke konsol CLB dan lihat ID sertifikat di halaman Certificates. Catatan
Untuk membuat sertifikat, lihat Pilih sertifikat yang dikeluarkan Alibaba Cloud. |
v1.9.3.164-g2105d2e-aliyun dan lebih baru |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "https:443"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${YOUR_CERT_ID}"
name: nginx
namespace: default
spec:
ports:
- port: 443
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
Error protokol SSL saat mengakses CLB dari dalam kluster
Gejala
Setelah Anda Buat pendengar HTTPS untuk layanan, layanan berfungsi dengan benar saat diakses dari luar kluster. Namun, saat Anda menggunakan curl untuk mengakses port HTTPS CLB yang terkait dengan layanan dari node atau pod di dalam kluster, error berikut dikembalikan:
curl: (35) error:1408F10B:SSL routines:ssl3_get_record:wrong version number
Penyebab
Masalah ini terjadi karena aturan IP Virtual Server (IPVS) pada node:
-
Konfigurasi Service: Pendengar HTTPS pada CLB hanya mendukung protokol HTTP untuk layanan backend. Oleh karena itu, layanan harus dikonfigurasi untuk meneruskan trafik dari
port: 443ketargetPort: 80. ACK kemudian membuat aturan IPVS pada node. Aturan ini langsung meneruskan trafik dari port443ke port backend80. -
Penerusan Lapisan 4: IPVS beroperasi pada Lapisan 4 stack protokol TCP/IP. IPVS hanya meneruskan paket data TCP dan tidak mengurai protokol lapisan aplikasi seperti TLS atau HTTPS.
-
Ketidakcocokan protokol: Klien (curl) mengirim permintaan HTTPS yang berisi data jabat tangan TLS. IPVS langsung meneruskan permintaan ini ke port HTTP
80layanan backend. Karena port ini tidak dikonfigurasi untuk TLS, port ini tidak dapat mengurai permintaan TLS. Akibatnya, layanan backend mengembalikan error HTTP400, dan klien melaporkan error protokol SSL.
Solusi
Tambahkan anotasi service.beta.kubernetes.io/alibaba-cloud-loadbalancer-hostname ke layanan. Anotasi ini mencegah aturan IPVS dibuat pada node dan memaksa trafik dalam kluster melewati CLB. Hal ini memastikan CLB menangani jabat tangan TLS dengan benar. Untuk informasi lebih lanjut, lihat .
Konfigurasi sertifikat nama domain tambahan untuk pendengar HTTPS
Anotasi: Multiple, seperti tercantum dalam tabel berikut.
|
Anotasi |
Deskripsi |
Versi CCM yang didukung |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port |
Pisahkan beberapa nilai dengan koma Inggris (,). Contoh: |
v1.9.3 dan lebih baru |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id |
ID sertifikat di Alibaba Cloud. Login ke konsol CLB dan lihat ID sertifikat di halaman Certificates. Catatan
Untuk membuat sertifikat, lihat Pilih sertifikat yang dikeluarkan Alibaba Cloud. |
v1.9.3.164-g2105d2e-aliyun dan lebih baru |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-domain-extensions |
Tentukan nama domain tambahan dan ID sertifikat dalam format Login ke konsol CLB dan lihat ID sertifikat di halaman Certificates. |
v2.13.0 dan lebih baru |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "https:443"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${YOUR_CERT_ID}"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-domain-extensions: "${DOMAIN_1}:${CERT_ID_1},${DOMAIN_2}:${CERT_ID_2}"
name: nginx
namespace: default
spec:
ports:
- port: 443
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
Buat pendengar dengan pemeriksaan kesehatan
Atur pemeriksaan kesehatan TCP
Anotasi: Multiple, seperti tercantum dalam tabel berikut. Semua anotasi wajib digunakan.
Port TCP memiliki pemeriksaan kesehatan yang diaktifkan secara default.
|
Anotasi |
Deskripsi |
Versi CCM yang didukung |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-switch |
Aktifkan pemeriksaan kesehatan untuk pendengar TCP dan UDP. Nilai yang valid:
Nilai default: |
v2.6.0 dan lebih baru |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-type |
Jenis pemeriksaan kesehatan. Nilai yang valid:
Nilai default: |
v1.9.3 dan lebih baru |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout |
Waktu tunggu respons dari pemeriksaan kesehatan, berlaku untuk mode TCP. Jika ECS backend tidak merespons dengan benar dalam waktu yang ditentukan, pemeriksaan kesehatan gagal. Unit: detik. Rentang valid: [1, 300]. Jika nilai |
v1.9.3 dan lebih baru |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold |
Jumlah pemeriksaan kesehatan berturut-turut yang berhasil diperlukan untuk mengubah status kesehatan server backend dari Rentang valid: [2, 10]. Nilai default: 3. Untuk informasi lebih lanjut, lihat CreateLoadBalancerTCPListener. |
v1.9.3 dan lebih baru |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold |
Jumlah pemeriksaan kesehatan berturut-turut yang gagal diperlukan untuk mengubah status kesehatan server backend dari success menjadi fail. Rentang valid: [2, 10]. Nilai default: 3. Untuk informasi lebih lanjut, lihat CreateLoadBalancerTCPListener. |
v1.9.3 dan lebih baru |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval |
Interval pemeriksaan kesehatan. Unit: detik. Rentang valid: [1, 50]. Nilai default: 2. Untuk informasi lebih lanjut, lihat CreateLoadBalancerTCPListener. |
v1.9.3 dan lebih baru |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-switch: "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: "3"
name: nginx
namespace: default
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
Atur pemeriksaan kesehatan UDP
Anotasi: Multiple, seperti tercantum dalam tabel berikut. Semua anotasi wajib digunakan.
Port UDP memiliki pemeriksaan kesehatan yang diaktifkan secara default.
|
Anotasi |
Deskripsi |
Versi CCM yang didukung |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-switch |
Aktifkan pemeriksaan kesehatan untuk pendengar TCP dan UDP. Nilai yang valid:
Nilai default: |
v2.6.0 dan lebih baru |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout |
Waktu tunggu respons dari pemeriksaan kesehatan, berlaku untuk mode TCP. Jika ECS backend tidak merespons dengan benar dalam waktu yang ditentukan, pemeriksaan kesehatan gagal. Unit: detik. Rentang valid: [1, 300]. Jika nilai |
v1.9.3 dan lebih baru |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold |
Jumlah pemeriksaan kesehatan berturut-turut yang berhasil diperlukan untuk mengubah status kesehatan server backend dari fail menjadi success. Rentang valid: [2, 10]. Nilai default: 3. Untuk informasi lebih lanjut, lihat CreateLoadBalancerUDPListener. |
v1.9.3 dan lebih baru |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold |
Jumlah pemeriksaan kesehatan berturut-turut yang gagal diperlukan untuk mengubah status kesehatan server backend dari success menjadi fail. Rentang valid: [2, 10]. Nilai default: 3. Untuk informasi lebih lanjut, lihat CreateLoadBalancerUDPListener. |
v1.9.3 dan lebih baru |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval |
Interval pemeriksaan kesehatan. Unit: detik. Rentang valid: [1, 50]. Nilai default: 2. Untuk informasi lebih lanjut, lihat CreateLoadBalancerUDPListener. |
v1.9.3 dan lebih baru |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-switch: "on"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval: "5"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout: "10"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold: "3"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold: "3"
name: nginx
namespace: default
spec:
ports:
- port: 80
protocol: UDP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
Nonaktifkan pemeriksaan kesehatan untuk pendengar TCP dan UDP
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-switch
|
Deskripsi |
Versi CCM yang didukung |
|
Aktifkan pemeriksaan kesehatan untuk pendengar TCP dan UDP. Nilai yang valid:
Nilai default: |
v2.6.0 dan lebih baru |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-switch: "off" # Nonaktifkan pemeriksaan kesehatan
name: nginx
namespace: default
spec:
ports:
- port: 443
protocol: TCP
targetPort: 443
selector:
run: nginx
type: LoadBalancer
Atur pemeriksaan kesehatan HTTP
Anotasi: Multiple, seperti tercantum dalam tabel berikut.
|
Anotasi |
Deskripsi |
Versi CCM yang didukung |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-flag |
Nilai yang valid:
Nilai default: |
v1.9.3 dan lebih baru |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-type |
Jenis pemeriksaan kesehatan. Nilai yang valid:
Nilai default: Untuk informasi lebih lanjut, lihat CreateLoadBalancerHTTPListener. |
v1.9.3 dan lebih baru |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-uri |
URI untuk pemeriksaan kesehatan. Tidak diperlukan saat jenis pemeriksaan kesehatan adalah TCP. |
v1.9.3 dan lebih baru |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-httpcode |
Kode status HTTP yang menunjukkan pemeriksaan sehat. Pisahkan beberapa kode status dengan koma Inggris. Nilai yang valid:
Nilai default: Untuk informasi lebih lanjut, lihat CreateLoadBalancerHTTPListener. |
v1.9.3 dan lebih baru |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-domain |
Nama domain untuk pemeriksaan kesehatan. Nilai yang valid:
Untuk informasi lebih lanjut, lihat CreateLoadBalancerHTTPListener. |
v1.9.3 dan lebih baru |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-timeout |
Waktu tunggu respons dari pemeriksaan kesehatan, berlaku untuk mode HTTP. Jika ECS backend tidak merespons dengan benar dalam waktu yang ditentukan, pemeriksaan kesehatan gagal. Unit: detik. Rentang valid: [1, 300]. Jika nilai Untuk informasi lebih lanjut, lihat CreateLoadBalancerHTTPListener. |
v1.9.3 dan lebih baru |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold |
Jumlah pemeriksaan kesehatan berturut-turut yang berhasil diperlukan untuk mengubah status kesehatan server backend dari fail menjadi success. Rentang valid: [2, 10]. Nilai default: 3. Untuk informasi lebih lanjut, lihat CreateLoadBalancerHTTPListener. |
v1.9.3 dan lebih baru |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold |
Jumlah pemeriksaan kesehatan berturut-turut yang gagal diperlukan untuk mengubah status kesehatan server backend dari success menjadi fail. Rentang valid: [2, 10]. Nilai default: 3. Untuk informasi lebih lanjut, lihat CreateLoadBalancerHTTPListener. |
v1.9.3 dan lebih baru |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval |
Interval pemeriksaan kesehatan. Unit: detik. Rentang valid: [1, 50]. Nilai default: 2. Untuk informasi lebih lanjut, lihat CreateLoadBalancerHTTPListener. |
v1.9.3 dan lebih baru |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port |
Pisahkan beberapa nilai dengan koma Inggris (,). Contoh: |
v1.9.3 dan lebih baru |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-method |
Metode pemeriksaan kesehatan untuk pendengar HTTP. Nilai yang valid:
|
v2.3.0 dan lebih baru |
apiVersion: v1
kind: Service
metadata:
annotations:
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-healthy-threshold: "4"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold: "4"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-timeout: "10"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval: "3"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "http:80"
# Atur kode status HTTP untuk pemeriksaan kesehatan (opsional)
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-httpcode: "http_4xx"
# Atur domain untuk pemeriksaan kesehatan (opsional)
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-domain: "www.aliyun.com"
# Atur metode pemeriksaan kesehatan (opsional)
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-method: "head"
name: nginx
namespace: default
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
Atur pengurasan koneksi untuk pendengar
Anotasi: Multiple, seperti tercantum dalam tabel berikut. Semua anotasi wajib digunakan.
Hanya berlaku untuk protokol TCP dan UDP.
|
Anotasi |
Deskripsi |
Versi CCM yang didukung |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-connection-drain |
Aktifkan pengurasan koneksi. Nilai yang valid:
|
v2.0.1 dan lebih baru |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-connection-drain-timeout |
Atur timeout pengurasan koneksi. Unit: detik. Rentang valid: [10, 900]. |
v2.0.1 dan lebih baru |
apiVersion: v1
kind: Service
metadata:
annotations:
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:
- port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
Konfigurasi header permintaan tambahan untuk pendengar
Anotasi: Multiple, seperti tercantum dalam tabel berikut.
Hanya berlaku untuk protokol HTTP dan HTTPS.
|
Anotasi |
Deskripsi |
Versi CCM yang didukung |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port |
Pisahkan beberapa nilai dengan koma Inggris (,). Contoh: |
v1.9.3 dan lebih baru |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-xforwardedfor-proto |
Konfigurasi apakah akan mendapatkan protokol pendengar CLB melalui header X-Forwarded-Proto. Nilai yang valid:
Nilai default: |
v2.1.0 dan lebih baru |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-xforwardedfor-slbport |
Konfigurasi apakah akan mendapatkan port pendengar instans SLB melalui header XForwardedFor_SLBPORT. Nilai yang valid:
Nilai default: |
v2.9.1 dan lebih baru |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-xforwardedfor-clientsrcport |
Konfigurasi apakah akan mendapatkan port klien yang mengakses instans SLB melalui header XForwardedFor_ClientSrcPort. Nilai yang valid:
Nilai default: |
v2.9.1 dan lebih baru |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "http:80"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-xforwardedfor-proto: "on"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-xforwardedfor-slbport: "on"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-xforwardedfor-clientsrcport: "on"
name: nginx
namespace: default
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
Atur timeout koneksi idle untuk pendengar
Anotasi: Multiple, seperti tercantum dalam tabel berikut.
Hanya berlaku untuk protokol HTTP dan HTTPS.
|
Anotasi |
Deskripsi |
Versi CCM yang didukung |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port |
Pisahkan beberapa nilai dengan koma Inggris (,). Contoh: |
v1.9.3 dan lebih baru |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-idle-timeout |
Atur timeout koneksi idle untuk pendengar. Unit: detik. Rentang valid: [1, 60]. Nilai default: 15 |
v2.1.0 dan lebih baru |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "http:80"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-idle-timeout: "30"
name: nginx
namespace: default
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
Nonaktifkan HTTP/2 untuk pendengar
Anotasi: Multiple, seperti tercantum dalam tabel berikut.
Hanya berlaku untuk protokol HTTPS.
|
Anotasi |
Deskripsi |
Versi CCM yang didukung |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port |
Pisahkan beberapa nilai dengan koma Inggris (,). Contoh: |
v1.9.3 dan lebih baru |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id |
ID sertifikat di Alibaba Cloud. Login ke konsol CLB dan lihat ID sertifikat di halaman Certificates. Catatan
Untuk membuat sertifikat, lihat Pilih sertifikat yang dikeluarkan Alibaba Cloud. |
v1.9.3.164-g2105d2e-aliyun dan lebih baru |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-http2-enabled |
Aktifkan HTTP/2. Nilai yang valid:
Nilai default: |
v2.1.0 dan lebih baru |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "https:443"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${YOUR_CERT_ID}"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-http2-enabled: "off"
name: nginx
namespace: default
spec:
ports:
- port: 443
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
Atur timeout permintaan untuk pendengar
Anotasi: Multiple, seperti tercantum dalam tabel berikut.
Hanya berlaku untuk protokol HTTP dan HTTPS.
|
Anotasi |
Deskripsi |
Versi CCM yang didukung |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port |
Pisahkan beberapa nilai dengan koma Inggris (,). Contoh: |
v1.9.3 dan lebih baru |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-request-timeout |
Atur timeout permintaan. Unit: detik. Rentang valid: [1, 180]. Nilai default: 60 Jika server backend tidak merespons dalam periode timeout, SLB berhenti menunggu dan mengembalikan error HTTP 504 ke klien. |
v2.3.0 dan lebih baru |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "http:80"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-request-timeout: "60"
name: nginx
namespace: default
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
Atur timeout koneksi untuk pendengar
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-established-timeout
Hanya berlaku untuk protokol TCP.
|
Deskripsi |
Versi CCM yang didukung |
|
Timeout koneksi. Unit: detik. Rentang valid: [10, 900]. Untuk informasi lebih lanjut, lihat CreateLoadBalancerTCPListener. |
v2.3.0 dan lebih baru |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-established-timeout: "60"
name: nginx
namespace: default
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
Mengonfigurasi kebijakan keamanan untuk Pendengar
Anotasi: Multiple, seperti tercantum dalam tabel berikut.
Hanya berlaku untuk protokol HTTPS.
|
Anotasi |
Deskripsi |
Versi CCM yang didukung |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port |
Pisahkan beberapa nilai dengan koma Inggris (,). Contoh: |
v1.9.3 dan lebih baru |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id |
ID sertifikat di Alibaba Cloud. Login ke konsol CLB dan lihat ID sertifikat di halaman Certificates. Catatan
Untuk membuat sertifikat, lihat Pilih sertifikat yang dikeluarkan Alibaba Cloud. |
v1.9.3.164-g2105d2e-aliyun dan lebih baru |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-tls-cipher-policy |
Kebijakan keamanan mencakup versi TLS opsional dan paket sandi enkripsi untuk HTTPS. Untuk informasi lebih lanjut, lihat CreateLoadBalancerHTTPSListener. Nilai yang valid:
Nilai default: |
v2.4.0 dan lebih baru |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "https:443,http:80"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${YOUR_CERT_ID}"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-tls-cipher-policy: "tls_cipher_policy_1_2"
name: nginx
namespace: default
spec:
ports:
- name: https
port: 443
protocol: TCP
targetPort: 443
- name: http
port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
Mengonfigurasi protokol TCP dan UDP untuk Pendengar
Fitur ini memerlukan versi kluster Kubernetes v1.24 atau lebih baru. Untuk instruksi peningkatan, lihat Upgrade versi Kubernetes kluster ACK.
apiVersion: v1
kind: Service
metadata:
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
type: LoadBalancer
Konfigurasi Proxy Protocol untuk pendengar TCP dan UDP
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-proxy-protocol
Saat mengakses layanan melalui IP CLB dari dalam kluster, trafik permintaan mungkin terpotong secara internal, menyebabkan masalah akses. Lihat Atur hostname untuk Service untuk memaksa trafik melewati CLB dengan menambahkan anotasi. Untuk detailnya, lihat Catatan tentang mengakses External IP Service LoadBalancer dari dalam kluster.
|
Deskripsi |
Versi CCM yang didukung |
|
Konfigurasi Proxy Protocol untuk pendengar TCP dan UDP. Saat diaktifkan, Proxy Protocol membawa alamat sumber klien ke server backend. Nilai yang valid:
Nilai default: Penting
Fitur ini tidak mendukung migrasi lancar. Mengganti Proxy Protocol memerlukan waktu henti layanan. Konfigurasikan dengan hati-hati. |
v2.6.0 dan lebih baru |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-proxy-protocol: "on"
name: nginx
namespace: default
spec:
ports:
- port: 443
protocol: TCP
targetPort: 443
selector:
run: nginx
type: LoadBalancer
Operasi kelompok server backend umum
Gunakan node pekerja dengan label tertentu sebagai server backend
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-backend-label
|
Deskripsi |
Versi CCM yang didukung |
|
Tentukan node pekerja untuk dipasang ke backend CLB menggunakan label. Pisahkan beberapa label dengan koma Inggris (,). Contoh: |
v1.9.3 dan lebih baru |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-backend-label: "failure-domain.beta.kubernetes.io/zone=ap-southeast-5a"
name: nginx
namespace: default
spec:
ports:
- port: 443
protocol: TCP
targetPort: 443
selector:
run: nginx
type: LoadBalancer
Gunakan node tempat pod berada sebagai server backend
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-scheduler
externalTrafficPolicy default adalah mode Cluster, yang memasang semua node kluster ke backend. Mode Local hanya memasang node tempat pod berada.
|
Deskripsi |
Versi CCM yang didukung |
|
Algoritma penjadwalan. Nilai yang valid:
Nilai default: |
v1.9.3 dan lebih baru |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-scheduler: "wrr"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
Hapus node dalam status unschedulable dari backend CLB
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-remove-unscheduled-backend
|
Deskripsi |
Versi CCM yang didukung |
|
Hapus node SchedulingDisabled dari backend CLB. Nilai yang valid:
Nilai default: |
v1.9.3.164-g2105d2e-aliyun dan lebih baru |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-remove-unscheduled-backend: "on"
name: nginx
spec:
externalTrafficPolicy: Local
ports:
- name: http
port: 30080
protocol: TCP
targetPort: 80
selector:
app: nginx
type: LoadBalancer
Pasang ENI pod langsung ke backend CLB
Anotasi: service.beta.kubernetes.io/backend-type
|
Deskripsi |
Nilai default |
Versi CCM yang didukung |
|
Jenis server backend CLB. Nilai yang valid:
|
|
v1.9.3.164-g2105d2e-aliyun dan lebih baru |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/backend-type: "eni"
name: nginx
spec:
ports:
- name: http
port: 30080
protocol: TCP
targetPort: 80
selector:
app: nginx
type: LoadBalancer
Gunakan kembali kelompok vServer yang sudah ada
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vgroup-port
Mendukung penggunaan kembali kelompok vServer yang sudah ada. Hanya berlaku saat menggunakan kembali instans CLB yang sudah ada. Untuk contoh penggunaan, lihat Capai penerapan layanan lintas kluster dengan menggunakan kembali instans SLB yang sudah ada.
Atur bobot trafik untuk Service
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-weight
Dalam skenario di mana beberapa Service menggunakan kembali CLB yang sama, gunakan anotasi ini untuk mengatur bobot trafik untuk Service saat ini. Anotasi ini hanya berlaku saat menggunakan kembali kelompok vServer yang sudah ada. Untuk contoh penggunaan, lihat Capai penerapan layanan lintas kluster dengan menggunakan kembali instans SLB yang sudah ada.
Abaikan pembaruan bobot server backend
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ignore-weight-update
|
Deskripsi |
Versi CCM yang didukung |
|
Lewati pembaruan bobot server backend dalam kelompok vServer selama sinkronisasi Service. Gunakan pengaturan ini saat mengelola bobot server backend secara manual di luar CCM. Nilai yang valid:
Nilai default: |
v2.11.1 dan lebih baru |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ignore-weight-update: "on"
name: nginx
namespace: default
spec:
ports:
- port: 443
protocol: TCP
targetPort: 443
selector:
run: nginx
type: LoadBalancer
Atur bobot default server backend
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-default-weight
|
Deskripsi |
Versi CCM yang didukung |
|
Atur bobot default untuk server dalam kelompok server. Bobot yang lebih tinggi menghasilkan lebih banyak trafik permintaan. Rentang valid: [0, 100]. Jika tidak ditentukan, sistem menggunakan bobot default yang sesuai dengan jenis jaringan saat ini. Pengaturan ini tidak berlaku saat instans backend adalah ECS dan |
v2.14.0 dan lebih baru |
apiVersion: v1
kind: Service
metadata:
annotations:
# Atur bobot server default dalam kelompok server menjadi 35
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-default-weight: "35"
name: nginx
namespace: default
spec:
ports:
- port: 443
protocol: TCP
targetPort: 443
selector:
run: nginx
type: LoadBalancer