Untuk load balancing tingkat lanjut, Anda dapat mengonfigurasi Classic Load Balancer (CLB), listener, dan grup server backend dengan menambahkan anotasi ke file YAML Service.
Indeks
Kategori | Kategori fitur | Tautan konfigurasi |
Buat Classic Load Balancer | ||
Tentukan instans yang sudah ada | ||
Konfigurasi CLB | ||
Aktifkan perlindungan instans | ||
Pengaturan persistensi sesi | ||
Konfigurasi port dan protokol | ||
Pengaturan lanjutan | ||
Manajemen konfigurasi | ||
Penggunaan anotasi
Anotasi bersifat case-sensitive.
Sebelum menggunakan anotasi, verifikasi versi komponen CCM yang diperlukan. Untuk meningkatkan komponen CCM, lihat manajemen komponen. Untuk changelog komponen CCM, lihat Cloud Controller Manager.
Per 11 September 2019,
aliclouddalam bidangannotationstelah diperbarui menjadialibaba-cloud.Contoh:
Sebelumnya:
service.beta.kubernetes.io/alicloud-loadbalancer-idSesudah:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-idSistem masih mendukung anotasi lama
alicloud, sehingga Anda tidak perlu memodifikasi konfigurasi yang sudah ada.
Operasi CLB umum
Buat load balancer publik
apiVersion: v1
kind: Service
metadata:
name: nginx
namespace: default
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancerBuat load balancer privat
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type
Deskripsi | Versi CCM yang didukung |
Menentukan jenis alamat load balancer. Nilai yang valid:
Nilai default: Kami menyarankan agar Anda secara manual menentukan VSwitch untuk CLB. Untuk informasi lebih lanjut, lihat Tentukan VSwitch untuk load balancer. Jika Anda tidak menentukan VSwitch, sistem akan memilih satu secara otomatis berdasarkan versi CCM:
| v1.9.3 dan seterusnya |
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: LoadBalancerSpesifikasi load balancer
Anotasi: Beberapa anotasi digunakan, seperti dijelaskan dalam tabel berikut.
Anotasi | Deskripsi | Versi CCM yang didukung |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-instance-charge-type | Jenis biaya instans. Nilai yang valid:
Nilai default: Penting
| v2.4.0 dan seterusnya |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-spec | Spesifikasi instans load balancer. Gunakan anotasi ini untuk membuat instans CLB dengan spesifikasi tertentu atau memperbarui spesifikasi instans yang sudah ada. Nilai yang valid:
Nilai default: Untuk informasi lebih lanjut tentang nilai yang valid untuk opsi ini, lihat CreateLoadBalancer. Penting Jika Anda memodifikasi spesifikasi instans CLB bayar-per-spesifikasi di konsol CLB, CCM mungkin akan mengembalikan perubahan tersebut. Lakukan dengan hati-hati. | v1.9.3 dan seterusnya |
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: LoadBalancerGunakan load balancer yang sudah ada
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id
Deskripsi | Versi CCM yang didukung |
Penting
ID instans load balancer. Gunakan anotasi ini untuk menentukan CLB yang sudah ada.
| v1.9.3.81-gca19cd4-aliyun dan seterusnya |
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: LoadBalancerGunakan load balancer yang sudah ada dan paksa-overwrite listener
Anotasi: Beberapa anotasi digunakan, seperti dijelaskan dalam tabel berikut. Memaksa overwrite listener yang sudah ada akan menghapus listener tersebut jika terjadi konflik port.
Anotasi | Deskripsi | Versi CCM yang didukung |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id | Penting Untuk mencegah perilaku tak terduga seperti ketidaktersediaan kluster atau gangguan trafik, jangan gunakan kembali CLB API Server atau CLB yang dibuat oleh CCM. Sebagai gantinya, buat instans baru secara manual di Konsol Classic Load Balancer (CLB). ID instans load balancer. Gunakan anotasi ini untuk menentukan CLB yang sudah ada.
| v1.9.3.81-gca19cd4-aliyun dan seterusnya |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners | Saat menggunakan kembali load balancer yang sudah ada, anotasi ini menentukan apakah akan menyinkronkan konfigurasi listener layanan dengan CLB.
Nilai default: Penting Untuk menghindari konflik konfigurasi listener, jangan konfigurasi beberapa layanan untuk menggunakan kembali listener yang sama pada instans CLB saat | v1.9.3.81-gca19cd4-aliyun dan seterusnya |
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: LoadBalancerTentukan zona ketersediaan primer dan cadangan
Anotasi: Beberapa anotasi digunakan, seperti dijelaskan dalam tabel berikut. Zona ketersediaan primer dan cadangan tidak dapat diubah setelah pembuatan.
Load balancer di beberapa wilayah tidak mendukung zona ketersediaan primer dan cadangan. Untuk informasi lebih lanjut, lihat halaman pembuatan instans di Konsol CLB.
Anotasi | Deskripsi | Versi CCM yang didukung |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-master-zoneid | ID zona ketersediaan untuk server backend primer. | v1.9.3.10-gfb99107-aliyun dan seterusnya |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-slave-zoneid | ID zona ketersediaan untuk server backend cadangan. | v1.9.3.10-gfb99107-aliyun dan seterusnya |
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: LoadBalancerBuat load balancer bayar-per-bandwidth
Anotasi: Beberapa anotasi digunakan. Dua anotasi berikut wajib.
Anotasi | Deskripsi | Versi CCM yang didukung |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-charge-type | Jenis biaya instans load balancer. Nilai yang valid:
Nilai default: | v1.9.3 dan seterusnya |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-bandwidth | Bandwidth puncak load balancer. Nilai default: 50. Anotasi ini hanya berlaku untuk load balancer publik. Untuk batasan lainnya, lihat Ubah metode penagihan instans load balancer publik. | v1.9.3.10-gfb99107-aliyun dan seterusnya |
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: LoadBalancerTentukan VSwitch untuk load balancer
Anotasi: Beberapa anotasi digunakan. Dua anotasi berikut wajib.
Anotasi | Deskripsi | Versi CCM yang didukung |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type | Menentukan jenis alamat load balancer. Nilai yang valid:
Nilai default: | v1.9.3 dan seterusnya |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vswitch-id | ID VSwitch untuk instans load balancer. VSwitch harus berada di Virtual Private Cloud (VPC) yang sama dengan kluster Kubernetes. Saat Anda menggunakan anotasi ini, Anda juga harus mengatur Untuk menemukan ID VSwitch, buka Konsol Virtual Private Cloud. | v1.9.3 dan seterusnya |
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: LoadBalancerTentukan alamat IP untuk load balancer privat
Anotasi: Beberapa anotasi digunakan. Tiga anotasi berikut wajib.
Anotasi | Deskripsi | Versi CCM yang didukung |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type | Menentukan jenis alamat load balancer. Nilai yang valid:
Nilai default: | v1.9.3 dan seterusnya |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vswitch-id | ID VSwitch untuk instans load balancer. VSwitch harus berada di Virtual Private Cloud (VPC) yang sama dengan kluster Kubernetes. Saat Anda menggunakan anotasi ini, Anda juga harus mengatur Untuk menemukan ID VSwitch, Anda dapat login ke Konsol Virtual Private Cloud. | v1.9.3 dan seterusnya |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip | Alamat IP instans load balancer privat.
| v2.7.0 dan seterusnya |
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: nginxTambahkan tag tambahan ke load balancer
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-additional-resource-tags
Deskripsi | Versi CCM yang didukung |
Daftar tag yang dipisahkan koma untuk ditambahkan, seperti Penting Setelah Anda menambahkan anotasi ini ke layanan, modifikasi selanjutnya terhadap tag instans load balancer yang sesuai di konsol mungkin akan ditimpa. | v1.9.3 dan seterusnya |
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: LoadBalancerBuat load balancer IPv6
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip-version
Deskripsi | Versi CCM yang didukung |
Versi IP instans load balancer. Versi IP tidak dapat diubah setelah instans dibuat. Untuk menggunakan fitur ini, mode kube-proxy kluster Anda harus IPVS. Nilai yang valid:
Nilai default: | v1.9.3.220-g24b1885-aliyun dan seterusnya |
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: LoadBalancerAktifkan perlindungan penghapusan untuk load balancer
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-delete-protection
Deskripsi | Versi CCM yang didukung |
Pengaturan perlindungan penghapusan untuk load balancer. Nilai yang valid:
Nilai default: Penting Untuk load balancer yang dibuat oleh layanan | v1.9.3.313-g748f81e-aliyun dan seterusnya |
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: LoadBalancerAktifkan perlindungan modifikasi untuk load balancer
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-modification-protection
Deskripsi | Versi CCM yang didukung |
Pengaturan perlindungan modifikasi untuk load balancer. Nilai yang valid:
Nilai default: | v1.9.3.313-g748f81e-aliyun dan seterusnya |
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: LoadBalancerTentukan nama load balancer
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-name
Deskripsi | Versi CCM yang didukung |
Nama instans load balancer. Nama harus terdiri dari 2 hingga 128 karakter. Harus dimulai dengan huruf (tidak case-sensitive) atau karakter Tionghoa dan dapat berisi angka, titik (.), garis bawah (_), dan tanda hubung (-). | v1.9.3.313-g748f81e-aliyun dan seterusnya |
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: LoadBalancerTentukan kelompok sumber daya untuk load balancer
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-resource-group-id
Deskripsi | Versi CCM yang didukung |
ID kelompok sumber daya load balancer. ID kelompok sumber daya tidak dapat diubah setelah load balancer dibuat. Untuk menemukan ID kelompok sumber daya, buka Konsol Resource Management. | v1.9.3.313-g748f81e-aliyun dan seterusnya |
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: LoadBalancerAtur hostname untuk layanan
Anotasi: Beberapa anotasi digunakan, seperti dijelaskan dalam tabel berikut.
Anotasi | Deskripsi | Versi CCM yang didukung |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port | Pisahkan beberapa nilai dengan koma (,), misalnya, | v1.9.3 dan seterusnya |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-hostname | Menetapkan hostname untuk layanan. Hostname harus mengikuti konvensi penamaan DNS. Catatan:
| v2.3.0 dan seterusnya |
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: LoadBalancerOutput 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 10sBuat load balancer bayar sesuai penggunaan
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-instance-charge-type
Deskripsi | Versi CCM yang didukung |
Jenis biaya instans. Nilai yang valid:
Nilai default: Penting
| v2.4.0 dan seterusnya |
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: LoadBalancerOperasi listener
Konfigurasi timeout persistensi sesi untuk listener TCP
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-persistence-timeout
Deskripsi | Versi CCM yang didukung |
Mengatur timeout persistensi sesi dalam detik untuk listener TCP. Secara default, pengaturan ini berlaku untuk semua listener TCP pada load balancer. Nilai harus berupa bilangan bulat dari 0 hingga 3600. Nilai 0 menonaktifkan persistensi sesi. Untuk informasi lebih lanjut, lihat CreateLoadBalancerTCPListener. | v1.9.3 dan seterusnya |
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: LoadBalancerKonfigurasi sesi lengket (insert cookie)
Anotasi: Anotasi yang tersedia dijelaskan dalam tabel berikut. Untuk menggunakan metode insert cookie, empat anotasi berikut wajib.
Fitur ini hanya mendukung instans load balancer yang menggunakan protokol HTTP atau HTTPS.
Jika Anda mengonfigurasi beberapa port listener HTTP atau HTTPS, pengaturan sesi lengket berlaku untuk semuanya secara default.
Anotasi | Deskripsi | Versi CCM yang didukung |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-session | Menentukan apakah akan mengaktifkan sesi lengket. Anotasi ini hanya berlaku untuk listener HTTP dan HTTPS. Nilai yang valid:
Nilai default: Untuk informasi lebih lanjut, lihat CreateLoadBalancerHTTPListener dan CreateLoadBalancerHTTPSListener. | v1.9.3 dan seterusnya |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-session-type | Jenis sesi lengket. Anotasi ini hanya berlaku untuk listener HTTP dan HTTPS. Anotasi ini wajib saat
Untuk informasi lebih lanjut, lihat CreateLoadBalancerHTTPListener dan CreateLoadBalancerHTTPSListener. | v1.9.3 dan seterusnya |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cookie-timeout | Timeout cookie. Parameter ini wajib saat Untuk informasi lebih lanjut, lihat CreateLoadBalancerHTTPListener dan CreateLoadBalancerHTTPSListener. | v1.9.3 dan seterusnya |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cookie | Nama cookie yang dikonfigurasi di server. Nama harus terdiri dari 1 hingga 200 karakter dan hanya berisi huruf ASCII dan angka. Nama tidak boleh mengandung koma (,), titik koma (;), atau spasi. Nama tidak boleh dimulai dengan tanda dolar ($). Parameter ini wajib saat Untuk informasi lebih lanjut, lihat CreateLoadBalancerHTTPListener dan CreateLoadBalancerHTTPSListener. | v1.9.3 dan seterusnya |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port | Pisahkan beberapa nilai dengan koma (,), misalnya, | v1.9.3 dan seterusnya |
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: LoadBalancerKonfigurasi daftar kontrol akses
Anotasi: Tiga anotasi berikut wajib.
Sebelum menggunakan anotasi ini untuk membuat load balancer dengan kontrol akses, buat daftar kontrol akses di Konsol Classic Load Balancer (CLB) dan catat ID-nya (acl-id).
Anotasi | Deskripsi | Versi CCM |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-acl-status | Menentukan apakah akan mengaktifkan kontrol akses. Nilai yang valid:
Default: | v1.9.3.164-g2105d2e-aliyun dan seterusnya |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-acl-id | ID daftar kontrol akses untuk listener. Parameter ini wajib saat | v1.9.3.164-g2105d2e-aliyun dan seterusnya |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-acl-type | Jenis kontrol akses. Nilai yang valid:
| v1.9.3.164-g2105d2e-aliyun dan seterusnya |
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}" # Daftar kontrol akses ganda tidak didukung.
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: LoadBalancerKonfigurasi penerusan port untuk load balancer
Penerusan port mengarahkan permintaan dari port HTTP ke port HTTPS.
Anotasi: Tabel berikut menjelaskan tiga anotasi wajib.
Anotasi | Deskripsi | Versi CCM yang didukung |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port | Gunakan koma (,) untuk memisahkan beberapa nilai. Misalnya, | v1.9.3 dan seterusnya |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id | ID sertifikat di Alibaba Cloud. Masuk ke konsol CLB dan lihat ID sertifikat pada halaman certificate management. Catatan Untuk membuat sertifikat, lihat Pilih sertifikat yang dikeluarkan Alibaba Cloud. | v1.9.3.164-g2105d2e-aliyun dan seterusnya |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-forward-port | Meneruskan permintaan HTTP ke port HTTPS yang ditentukan. Misalnya, | v1.9.3.164-g2105d2e-aliyun dan seterusnya |
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: LoadBalancerKonfigurasi algoritma penjadwalan
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-scheduler
Deskripsi | Versi CCM yang didukung |
Menentukan algoritma penjadwalan. Nilai yang valid:
Nilai default: Untuk informasi lebih lanjut, lihat parameter | v1.9.3 dan seterusnya |
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: LoadBalancerBuat listener UDP
apiVersion: v1
kind: Service
metadata:
name: nginx
namespace: default
spec:
ports:
- port: 80
protocol: UDP
targetPort: 80
selector:
run: nginx
type: LoadBalancerPendengar HTTP
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port
Pemeriksaan kesehatan: Secara default, pemeriksaan kesehatan dinonaktifkan untuk listener HTTP. Untuk memastikan layanan backend Anda tersedia, konfigurasikan pemeriksaan kesehatan HTTP atau TCP untuk port listener.
Saat Anda mengakses Service menggunakan alamat IP Classic Load Balancer (CLB) dari dalam kluster, trafik permintaan mungkin dicegat, menyebabkan masalah akses. Untuk memaksa trafik hairpin melalui CLB, tambahkan anotasi yang diperlukan seperti dijelaskan dalam Atur Hostname untuk Service. Untuk informasi lebih lanjut, lihat Catatan tentang mengakses alamat IP eksternal Service LoadBalancer dari dalam kluster.
Deskripsi | Versi CCM yang didukung |
Gunakan koma (,) untuk memisahkan beberapa nilai, misalnya, | v1.9.3 dan seterusnya |
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: LoadBalancerBuat listener HTTPS
Anotasi: Tabel berikut mencantumkan anotasi yang tersedia.
CLB mendekripsi permintaan HTTPS dan mengirimkannya ke pod backend sebagai permintaan HTTP.
Pemeriksaan kesehatan: Pemeriksaan kesehatan untuk listener HTTPS dinonaktifkan secara default. Untuk memastikan layanan backend Anda tersedia, konfigurasikan pemeriksaan kesehatan HTTP atau TCP untuk port listener.
Saat Anda mengakses Service menggunakan alamat IP Classic Load Balancer (CLB) dari dalam kluster, trafik permintaan mungkin dicegat, menyebabkan masalah akses. Untuk memaksa trafik hairpin melalui CLB, tambahkan anotasi yang diperlukan seperti dijelaskan dalam Atur Hostname untuk Service. Untuk informasi lebih lanjut, lihat Catatan tentang mengakses alamat IP eksternal Service LoadBalancer dari dalam kluster.
Anotasi | Deskripsi | Versi CCM yang didukung |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port | Gunakan koma (,) untuk memisahkan beberapa nilai, misalnya, | v1.9.3 dan seterusnya |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id | ID sertifikat dari Alibaba Cloud. Login ke Konsol CLB dan lihat ID sertifikat di halaman certificate management. Catatan Untuk membuat sertifikat, lihat Pilih sertifikat yang ditandatangani Alibaba Cloud. | v1.9.3.164-g2105d2e-aliyun dan seterusnya |
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: LoadBalancerKonfigurasi sertifikat domain tambahan
Anotasi: Tabel berikut mencantumkan anotasi yang tersedia.
Anotasi | Deskripsi | Versi CCM yang didukung |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port | Gunakan koma (,) untuk memisahkan beberapa nilai, misalnya, | v1.9.3 dan seterusnya |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id | ID sertifikat dari Alibaba Cloud. Login ke Konsol CLB dan lihat ID sertifikat di halaman certificate management. Catatan Untuk membuat sertifikat, lihat Pilih sertifikat yang ditandatangani Alibaba Cloud. | v1.9.3.164-g2105d2e-aliyun dan seterusnya |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-domain-extensions | Tentukan nama domain tambahan dan ID sertifikat dalam format Masuk ke konsol CLB dan lihat ID sertifikat pada halaman certificate management. | v2.13.0 dan seterusnya |
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: LoadBalancerListener dengan pemeriksaan kesehatan
Pemeriksaan kesehatan TCP
Anotasi: Semua anotasi berikut wajib.
Pemeriksaan kesehatan diaktifkan secara default untuk port TCP.
Anotasi | Deskripsi | Versi CCM yang didukung |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-switch | Mengaktifkan atau menonaktifkan pemeriksaan kesehatan untuk listener TCP dan UDP. Nilai yang valid:
Nilai default: | v2.6.0 dan seterusnya |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-type | Menentukan jenis pemeriksaan kesehatan. Nilai yang valid:
Nilai default: | v1.9.3 dan seterusnya |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout | Menentukan timeout respons untuk pemeriksaan kesehatan TCP. Jika instans ECS backend tidak merespons dalam waktu ini, pemeriksaan kesehatan gagal. Satuan: detik. Rentang nilai: [1, 300]. Jika nilai | v1.9.3 dan seterusnya |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold | Menentukan jumlah pemeriksaan kesehatan berturut-turut yang berhasil diperlukan untuk mengubah status kesehatan server backend dari Rentang nilai: [2, 10]. Nilai default: 3. Untuk informasi lebih lanjut, lihat CreateLoadBalancerTCPListener. | v1.9.3 dan seterusnya |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold | Menentukan jumlah pemeriksaan kesehatan berturut-turut yang gagal diperlukan untuk mengubah status kesehatan server backend dari success menjadi fail. Rentang nilai: [2, 10]. Nilai default: 3. Untuk informasi lebih lanjut, lihat CreateLoadBalancerTCPListener. | v1.9.3 dan seterusnya |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval | Menentukan interval antar pemeriksaan kesehatan, dalam detik. Rentang nilai: [1, 50]. Nilai default: 2. Untuk informasi lebih lanjut, lihat CreateLoadBalancerTCPListener. | v1.9.3 dan seterusnya |
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: LoadBalancerPemeriksaan kesehatan UDP
Anotasi: Anotasi dalam tabel berikut wajib.
Pemeriksaan kesehatan diaktifkan secara default untuk port UDP.
Anotasi | Deskripsi | Versi CCM yang didukung |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-switch | Menentukan apakah akan mengaktifkan pemeriksaan kesehatan untuk listener TCP dan UDP. Nilai yang valid:
Nilai default: | v2.6.0 dan seterusnya |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout | Periode timeout untuk respons pemeriksaan kesehatan. Jika server backend tidak merespons dalam periode ini, pemeriksaan kesehatan gagal. Satuan: detik. Nilai harus berupa bilangan bulat dari 1 hingga 300. Jika nilai | v1.9.3 dan seterusnya |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold | Jumlah pemeriksaan kesehatan berturut-turut yang berhasil diperlukan untuk menandai server backend sebagai sehat. Nilai harus berupa bilangan bulat dari 2 hingga 10. Nilai default adalah 3. Untuk informasi lebih lanjut, lihat CreateLoadBalancerUDPListener. | v1.9.3 dan seterusnya |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold | Jumlah pemeriksaan kesehatan berturut-turut yang gagal diperlukan untuk menandai server backend sebagai tidak sehat. Nilai harus berupa bilangan bulat dari 2 hingga 10. Nilai default adalah 3. Untuk informasi lebih lanjut, lihat CreateLoadBalancerUDPListener. | v1.9.3 dan seterusnya |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval | Interval antar pemeriksaan kesehatan, dalam detik. Nilai harus berupa bilangan bulat dari 1 hingga 50. Nilai default adalah 2. Untuk informasi lebih lanjut, lihat CreateLoadBalancerUDPListener. | v1.9.3 dan seterusnya |
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: LoadBalancerNonaktifkan pemeriksaan kesehatan TCP dan UDP
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-switch
Deskripsi | Versi CCM yang didukung |
Menentukan apakah akan mengaktifkan pemeriksaan kesehatan untuk listener TCP dan UDP. Nilai yang valid:
Nilai default: | v2.6.0 dan seterusnya |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-switch: "off" # Menonaktifkan pemeriksaan kesehatan.
name: nginx
namespace: default
spec:
ports:
- port: 443
protocol: TCP
targetPort: 443
selector:
run: nginx
type: LoadBalancerPemeriksaan kesehatan HTTP
Anotasi: Tabel berikut menjelaskan anotasi yang tersedia.
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 seterusnya |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-type | Menentukan jenis pemeriksaan kesehatan. Nilai yang valid:
Nilai default: Untuk informasi lebih lanjut, lihat CreateLoadBalancerHTTPListener. | v1.9.3 dan seterusnya |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-uri | URI untuk pemeriksaan kesehatan. Anotasi ini hanya berlaku untuk pemeriksaan kesehatan HTTP. | v1.9.3 dan seterusnya |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-httpcode | Kode status HTTP yang menunjukkan pemeriksaan kesehatan berhasil. Pisahkan beberapa kode dengan koma (
Nilai default: Untuk informasi lebih lanjut, lihat CreateLoadBalancerHTTPListener. | v1.9.3 dan seterusnya |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-domain | Nama domain yang digunakan untuk pemeriksaan kesehatan. Nilai yang valid:
Untuk informasi lebih lanjut, lihat CreateLoadBalancerHTTPListener. | v1.9.3 dan seterusnya |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-timeout | Waktu maksimum untuk menunggu respons pemeriksaan kesehatan. Jika instans ECS backend gagal merespons dalam periode ini, pemeriksaan kesehatan gagal. Satuan: detik. Rentang nilai: [1, 300]. Jika nilai Untuk informasi lebih lanjut, lihat CreateLoadBalancerHTTPListener. | v1.9.3 dan seterusnya |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold | Jumlah pemeriksaan kesehatan berturut-turut yang berhasil diperlukan untuk menandai server backend yang gagal sebagai sehat. Nilai harus berupa bilangan bulat dari 2 hingga 10. Nilai default adalah 3. Untuk informasi lebih lanjut, lihat CreateLoadBalancerHTTPListener. | v1.9.3 dan seterusnya |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold | Jumlah pemeriksaan kesehatan berturut-turut yang gagal diperlukan untuk menandai server backend yang sehat sebagai gagal. Nilai harus berupa bilangan bulat dari 2 hingga 10. Nilai default adalah 3. Untuk informasi lebih lanjut, lihat CreateLoadBalancerHTTPListener. | v1.9.3 dan seterusnya |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval | Interval antar pemeriksaan kesehatan, dalam detik. Nilai harus berupa bilangan bulat dari 1 hingga 50. Nilai default adalah 2. Untuk informasi lebih lanjut, lihat CreateLoadBalancerHTTPListener. | v1.9.3 dan seterusnya |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port | Pisahkan beberapa nilai dengan koma ( | v1.9.3 dan seterusnya |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-method | Metode HTTP untuk pemeriksaan kesehatan. Nilai yang valid:
| v2.3.0 dan seterusnya |
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"
# Opsional. Konfigurasikan kode status HTTP untuk pemeriksaan kesehatan.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-httpcode: "http_4xx"
# Opsional. Konfigurasikan nama domain untuk pemeriksaan kesehatan.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-domain: "www.aliyun.com"
# Opsional. Konfigurasikan metode pemeriksaan kesehatan.
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: LoadBalancerAktifkan pengurasan koneksi
Anotasi: Untuk mengaktifkan fitur ini, Anda harus menentukan kedua anotasi yang dijelaskan dalam tabel berikut.
Fitur ini hanya mendukung listener TCP dan UDP.
Anotasi | Deskripsi | Versi CCM yang didukung |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-connection-drain | Mengaktifkan atau menonaktifkan pengurasan koneksi.
| v2.0.1 dan seterusnya |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-connection-drain-timeout | Timeout untuk pengurasan koneksi, dalam detik. Rentang nilai: 10-900. | v2.0.1 dan seterusnya |
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: LoadBalancerKonfigurasi header permintaan listener
Anotasi: Anotasi yang tersedia dijelaskan dalam tabel berikut.
Hanya HTTP dan HTTPS yang didukung.
Anotasi | Deskripsi | Versi CCM yang didukung |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port | Gunakan koma (,) untuk memisahkan beberapa nilai, misalnya, | v1.9.3 dan seterusnya |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-xforwardedfor-proto | Menentukan apakah akan menggunakan header permintaan 'X-Forwarded-Proto' untuk mengambil protokol listener. Nilai yang valid:
Nilai default: | v2.1.0 dan seterusnya |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-xforwardedfor-slbport | Menentukan apakah akan menggunakan header permintaan 'XForwardedFor_SLBPORT' untuk mengambil port listener instans load balancer. Nilai yang valid:
Nilai default: | v2.9.1 dan seterusnya |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-xforwardedfor-clientsrcport | Menentukan apakah akan menggunakan header permintaan 'XForwardedFor_ClientSrcPort' untuk mengambil port sumber klien. Nilai yang valid:
Nilai default: | v2.9.1 dan seterusnya |
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: LoadBalancerTimeout idle koneksi
Anotasi: Beberapa. Lihat tabel berikut.
Hanya HTTP dan HTTPS yang didukung.
Anotasi | Deskripsi | Versi CCM yang didukung |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port | Pisahkan beberapa nilai dengan koma (,), misalnya, | v1.9.3 dan seterusnya |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-idle-timeout | Menentukan timeout idle koneksi untuk listener, dalam detik. Nilai harus dari 1 hingga 60. Default: 15 | v2.1.0 dan seterusnya |
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: LoadBalancerNonaktifkan HTTP/2 untuk listener
Anotasi: Fitur ini menggunakan anotasi yang tercantum dalam tabel berikut.
Fitur ini hanya berlaku untuk listener HTTPS.
Anotasi | Deskripsi | Versi CCM yang didukung |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port | Gunakan koma (,) untuk memisahkan beberapa nilai, misalnya, | v1.9.3 dan seterusnya |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id | ID sertifikat di Alibaba Cloud. Masuk ke konsol CLB dan temukan ID sertifikat pada halaman Certificate Management. Catatan Untuk membuat sertifikat, lihat Pilih sertifikat yang ditandatangani Alibaba Cloud. | v1.9.3.164-g2105d2e-aliyun dan seterusnya |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-http2-enabled | Mengaktifkan atau menonaktifkan HTTP/2. Nilai yang valid:
Nilai default: | v2.1.0 dan seterusnya |
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: LoadBalancerAtur timeout permintaan listener
Anotasi: Tabel berikut menjelaskan anotasi yang tersedia.
Hanya listener HTTP dan HTTPS yang didukung.
Anotasi | Deskripsi | Versi CCM yang didukung |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port | Gunakan koma untuk memisahkan beberapa nilai, misalnya, | v1.9.3 dan seterusnya |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-request-timeout | Timeout permintaan, dalam detik. Nilai harus berupa bilangan bulat dari 1 hingga 180. Nilai default: 60. Jika server backend gagal merespons dalam timeout yang ditentukan, load balancer mengembalikan error HTTP 504 ke klien. | v2.3.0 dan seterusnya |
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: LoadBalancerAtur batas waktu yang ditetapkan
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-established-timeout
Hanya protokol TCP yang didukung.
Deskripsi | Versi CCM yang didukung |
Timeout established dalam detik. Nilai yang valid: [10, 900]. Untuk detailnya, lihat CreateLoadBalancerTCPListener. | v2.3.0 dan seterusnya |
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: LoadBalancerKonfigurasi kebijakan keamanan listener
Anotasi: Tabel berikut menjelaskan anotasi yang tersedia.
Hanya protokol HTTPS yang didukung.
Anotasi | Deskripsi | Versi CCM yang didukung |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port | Pisahkan beberapa nilai dengan koma, misalnya, | v1.9.3 dan seterusnya |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id | Menentukan ID sertifikat di Alibaba Cloud. Untuk menemukan ID, login ke Konsol CLB dan navigasi ke halaman Certificate Management. Catatan Untuk membuat sertifikat, lihat Pilih sertifikat yang dikeluarkan Alibaba Cloud. | v1.9.3.164-g2105d2e-aliyun dan seterusnya |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-tls-cipher-policy | Kebijakan keamanan menentukan versi protokol TLS dan paket sandi yang didukung untuk listener HTTPS. Untuk informasi lebih lanjut, lihat CreateLoadBalancerHTTPSListener. Nilai yang valid:
Nilai default: | v2.4.0 dan seterusnya |
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: LoadBalancerTCP dan UDP pada listener
Fitur ini memerlukan kluster Kubernetes v1.24 atau lebih baru. Untuk meningkatkan versi K8s kluster ACK, lihat Tingkatkan versi K8s 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: LoadBalancerKonfigurasi proxy protocol
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-proxy-protocol
Saat Anda mengakses layanan dari dalam kluster menggunakan alamat IP Cloud Load Balancer (CLB), trafik mungkin terputus dan menyebabkan masalah akses. Untuk memaksa trafik hairpin melalui CLB, tambahkan anotasi yang diperlukan seperti dijelaskan dalam Atur Hostname untuk Layanan. Untuk informasi lebih lanjut, lihat Catatan tentang Mengakses Alamat IP Eksternal Layanan LoadBalancer di Dalam Kluster.
Deskripsi | Versi CCM yang didukung |
Konfigurasikan Proxy Protocol untuk listener TCP dan UDP. Saat diaktifkan, listener menggunakan Proxy Protocol untuk meneruskan alamat sumber klien ke server backend. Nilai yang valid:
Default: Penting Fitur ini tidak mendukung perubahan online tanpa gangguan. Mengaktifkan atau menonaktifkan Proxy Protocol memerlukan restart layanan. Oleh karena itu, konfigurasikan pengaturan ini dengan hati-hati. | v2.6.0 dan seterusnya |
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: LoadBalancerOperasi umum untuk grup server backend
Gunakan node pekerja dengan label tertentu
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-backend-label
Deskripsi | Versi CCM yang didukung |
Menentukan node pekerja untuk ditambahkan sebagai server backend untuk instans Classic Load Balancer (CLB) berdasarkan label mereka. Pisahkan beberapa label dengan koma (,), misalnya, | v1.9.3 dan seterusnya |
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: LoadBalancerGunakan node yang menjadi host pod
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-scheduler
Secara default, externalTrafficPolicy diatur ke Cluster, yang menambahkan semua node di kluster ke grup server backend. Dalam mode Local, hanya node yang menjalankan Pod layanan yang menjadi server backend.
Deskripsi | Versi CCM yang didukung |
Algoritma penjadwalan. Nilai yang valid:
Nilai default: | v1.9.3 dan seterusnya |
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: LoadBalancerHapus unschedulable node
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-remove-unscheduled-backend
Deskripsi | Versi CCM yang didukung |
Menentukan apakah akan menghapus node dengan status
Nilai default: | v1.9.3.164-g2105d2e-aliyun dan seterusnya |
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: LoadBalancerSambungkan ENI Pod ke grup server backend
Anotasi: service.beta.kubernetes.io/backend-type
Deskripsi | Default | Versi CCM yang didukung |
Jenis server backend untuk instans Classic Load Balancer (CLB). Nilai yang valid:
|
| v1.9.3.164-g2105d2e-aliyun dan seterusnya |
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: LoadBalancerGunakan kembali VServer Group yang sudah ada
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vgroup-port
Gunakan kembali VServer Group yang sudah ada. Anotasi ini hanya berlaku saat Anda menggunakan kembali instans Classic Load Balancer (CLB) yang sudah ada. Untuk contoh penggunaan, lihat Sebarkan layanan lintas kluster dengan menggunakan kembali load balancer yang sudah ada.
Atur bobot trafik untuk Layanan
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-weight
Saat beberapa Layanan menggunakan kembali instans Classic Load Balancer (CLB) yang sama, Anda dapat menggunakan anotasi ini untuk mengatur bobot trafik untuk Layanan saat ini. Anotasi ini hanya berlaku saat Anda menggunakan kembali VServer Group yang sudah ada. Untuk contoh penggunaan, lihat Sebarkan layanan lintas kluster dengan menggunakan kembali load balancer yang sudah ada.
Abaikan pembaruan bobot server backend
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ignore-weight-update
Deskripsi | Versi CCM yang didukung |
Menentukan apakah akan melewati pembaruan bobot server backend di VServer Group selama rekonsiliasi Layanan. Ini berguna saat bobot server backend dikelola oleh mekanisme lain. Nilai yang valid:
Nilai default: | v2.11.1 dan seterusnya |
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: LoadBalancerAtur bobot default untuk server backend
Anotasi: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-default-weight
Deskripsi | Versi CCM yang didukung |
Menetapkan bobot default untuk server di grup server backend. Server backend dengan bobot lebih tinggi menerima lebih banyak trafik. Nilai harus berupa bilangan bulat dari 0 hingga 100. Jika anotasi ini dihilangkan, sistem menggunakan bobot default berdasarkan jenis jaringan. Pengaturan ini tidak berlaku saat instans backend adalah instans Elastic Compute Service (ECS) dan | v2.14.0 dan seterusnya |
apiVersion: v1
kind: Service
metadata:
annotations:
# Menetapkan bobot default untuk server di grup server backend 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