Sambungkan instans CLB atau NLB yang sudah ada ke Layanan LoadBalancer untuk mempertahankan IP tetap atau berbagi antar Layanan.
Dari luar kluster, akses menggunakan <SLB-IP>:<Port Layanan> atau nama domain SLB. Dari dalam kluster, gunakan <Nama Layanan>:<Port Layanan>.
Prasyarat
Pastikan hal-hal berikut:
-
Kluster ACK yang dikelola, kluster khusus ACK, atau kluster ACK Serverless telah dibuat. Lihat Buat kluster ACK yang dikelola, Buat kluster khusus ACK (tidak dilanjutkan), dan Buat kluster ACK Serverless.
-
Instans CLB atau NLB di konsol SLB telah dibuat di wilayah yang sama dengan kluster Anda. Lihat Gunakan instans CLB yang sudah ada dan Gunakan instans NLB yang sudah ada .
Jika Anda berencana menggunakan kembali instans SLB yang sudah ada, jangan pilih Install Ingresses saat pembuatan kluster. Tentukan instans tersebut secara manual setelahnya. Lihat Gunakan instans CLB yang sudah ada dan Gunakan instans NLB yang sudah ada.
Catatan penggunaan
Pengelolaan listener bergantung pada versi cloud-controller-manager, dan beberapa instans SLB tidak dapat digunakan kembali.
Perilaku listener berdasarkan versi cloud-controller-manager
Konfigurasi listener bergantung pada versi cloud-controller-manager:
-
v1.9.3.59-ge3bc999-aliyun dan yang lebih baru: cloud-controller-manager tidak mengonfigurasi listener secara default. Tambahkan
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners: "true"agar ACK mengelola listener, atau konfigurasikan secara manual. -
Lebih lama dari v1.9.3.59-ge3bc999-aliyun: cloud-controller-manager membuat dan mengelola grup server backend, serta mengaitkan semua listener—termasuk yang dikonfigurasi manual—dengan grup tersebut.
Periksa versi cloud-controller-manager
-
Konsol: Di konsol ACK, buka halaman Operations > Add-ons kluster Anda. Pada tab Core Components, periksa versi Cloud Controller Manager.
-
kubectl (hanya untuk kluster khusus ACK):
kubectl get pod -n kube-system -o yaml | grep image: | grep cloud-con | uniq
Batasan penggunaan
-
Jangan gunakan kembali instans SLB milik API server kluster—hal ini menyebabkan kegagalan akses.
-
Tinjau instans SLB mana yang dapat digunakan kembali dan batas kuota sebelum melanjutkan.
Sebarkan aplikasi
Sebarkan aplikasi NGINX tanpa status sebagai backend Layanan LoadBalancer.
Gunakan konsol ACK
-
Masuk ke konsol ACK. Di panel navigasi kiri, klik Clusters.
-
Pada halaman Clusters, klik nama kluster Anda. Di panel kiri, pilih Workloads > Deployments.
-
Pada halaman Deployments, klik Create from Image dan konfigurasikan Deployment:
-
Pada halaman Basic Information, atur Name menjadi
my-nginx, lalu klik Next. -
Pada halaman Container, konfigurasikan image dan port:
Parameter
Nilai
Image Name
Klik Select images. Pada tab Artifact Center, cari
nginxdan pilih openanolis/nginx. Klik Select Image Tag, atur tag, lalu klik OK.Port
Nama:
nginx, Port Kontainer:80 -
Pada halaman Advanced, pertahankan nilai default, lalu klik Create.
-
Gunakan kubectl
-
Buat file bernama
my-nginx.yamldengan konten berikut:apiVersion: apps/v1 kind: Deployment metadata: name: my-nginx # Nama Deployment labels: app: nginx spec: replicas: 2 # Jumlah replika Pod selector: matchLabels: app: nginx # Harus sesuai dengan selector di Layanan template: metadata: labels: app: nginx spec: # nodeSelector: # env: test-team containers: - name: nginx image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6 ports: - containerPort: 80 -
Sebarkan aplikasi:
kubectl apply -f my-nginx.yaml -
Verifikasi bahwa Deployment siap:
kubectl get deployment my-nginxOutput yang diharapkan:
NAME READY UP-TO-DATE AVAILABLE AGE my-nginx 2/2 2 2 50s
Buat Layanan LoadBalancer
Arahkan Layanan ke instans SLB yang sudah ada untuk meneruskan traffic eksternal ke Pod NGINX.
Gunakan konsol ACK
-
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
-
Pada halaman Clusters, klik nama kluster Anda. Di panel kiri, pilih Network > Services.
-
Pada halaman Services, klik Create. Di kotak dialog Create Service, konfigurasikan parameter berikut:
Parameter
Deskripsi
Contoh
Name
Nama Layanan
my-nginx-svcService Type
Pilih SLB, atur SLB Type menjadi CLB, lalu pilih Use Existing Resource. Pilih instans CLB. Untuk instans tanpa listener, aktifkan Overwrite Existing Listeners.
SLB > CLB > Use Existing Resource
External Traffic Policy
Local meneruskan traffic hanya ke Pod di node saat ini. Cluster meneruskan traffic ke Pod di seluruh node.
LocalBackend
Aplikasi yang akan dikaitkan dengan Layanan
Nama:
app, Nilai:nginxPort Mapping
Memetakan port Layanan ke port kontainer
Port Layanan:
80, Port Kontainer:80, Protokol:TCPAnnotations
Tambahkan anotasi untuk mengonfigurasi instans SLB. Lihat Gunakan anotasi untuk mengonfigurasi instans CLB dan Gunakan anotasi untuk mengonfigurasi instans NLB.
N/A
-
Klik OK. Klik nama Layanan untuk membuka detail, lalu klik External IP (misalnya,
39.106.XX.XX:80) untuk memverifikasi akses.
Gunakan kubectl
-
Buat file bernama
my-nginx-svc.yamldengan konten berikut:Bidang
Deskripsi
metadata.annotationsalibaba-cloud-loadbalancer-id: ID instans SLB yang sudah ada.alibaba-cloud-loadbalancer-force-override-listeners: 'true': memungkinkan ACK mengelola listener. Hilangkan jika ingin mempertahankan konfigurasi listener yang sudah ada.spec.selectorMemilih Pod yang akan menerima traffic. Harus sesuai dengan
matchLabelsdi Deployment (app: nginx).spec.ports.portPort yang diekspos pada cluster IP. Akses dari dalam kluster melalui
clusterIP:port.spec.ports.targetPortPort Pod backend. kube-proxy meneruskan traffic dari
portketargetPort.apiVersion: v1 kind: Service metadata: annotations: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id: ${YOUR_LB_ID} # Ganti dengan ID instans SLB Anda service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners: 'true' # Atur ke true untuk instans baru tanpa listener yang dikonfigurasi labels: app: nginx name: my-nginx-svc namespace: default spec: ports: - port: 80 protocol: TCP targetPort: 80 selector: app: nginx # Harus sesuai dengan label pada Pod backend type: LoadBalancerBidang utama:
-
Terapkan Layanan:
kubectl apply -f my-nginx-svc.yaml -
Konfirmasi bahwa Layanan memiliki IP eksternal:
kubectl get svc my-nginx-svcOutput yang diharapkan:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE my-nginx-svc LoadBalancer 172.21.5.82 39.106.XX.XX 80:30471/TCP 5m -
Akses aplikasi:
curl <YOUR-EXTERNAL-IP> # Ganti dengan IP eksternal dari langkah sebelumnyaOutput yang diharapkan:
<!DOCTYPE html> <html> <head> <title>Welcome to nginx!</title> ... </html>
Kelola Layanan
Gunakan konsol ACK
-
Masuk ke konsol ACK. Di panel navigasi kiri, klik Clusters.
-
Pada halaman Clusters, klik nama kluster Anda. Di panel kiri, pilih Network > Services.
-
Pada halaman Services, klik nama Layanan untuk melihat detail, atau klik Update atau Delete di kolom Actions.
Gunakan kubectl
Perbarui Layanan
kubectl edit service my-nginx-svc
Atau edit my-nginx-svc.yaml, lalu terapkan ulang:
kubectl apply -f my-nginx-svc.yaml
Lihat Layanan
kubectl get service my-nginx-svc
Output yang diharapkan:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
my-nginx-svc LoadBalancer 172.21.XX.XX 192.168.XX.XX 80:31599/TCP 5m
Hapus Layanan
kubectl delete service my-nginx-svc
Referensi konfigurasi CLB
Konfigurasikan parameter berikut saat membuat atau menggunakan kembali instans CLB di konsol ACK.
Buat instans CLB baru
|
Parameter |
Deskripsi |
|
Name |
Nama instans CLB |
|
Access Method |
Public Access atau Internal Access |
|
Billing Method |
Pay-by-specification atau Pay-as-you-go (Pay-by-CU). Lihat penagihan CLB. |
|
IP Version |
IPv4 atau IPv6 |
|
Scheduling Algorithm |
Round Robin (RR) (default): mendistribusikan permintaan secara berurutan. Weighted Round Robin (WRR): server dengan bobot lebih tinggi menerima lebih banyak permintaan. |
|
Access Control |
Aktifkan atau nonaktifkan kontrol akses tingkat listener. Lihat Kontrol akses. |
|
Health Check |
TCP atau HTTP. Lihat Pemeriksaan kesehatan CLB. |
|
Others |
Konfigurasikan dengan anotasi. Lihat Gunakan anotasi untuk mengonfigurasi instans CLB. |
Gunakan instans CLB yang sudah ada
Pilih instans tersebut dan, jika diperlukan, aktifkan Overwrite Existing Listeners. Lihat Gunakan instans CLB yang sudah ada dan paksa menimpa listener instans CLB.
Tinjau batasan penggunaan sebelum menggunakan kembali CLB. Lihat Catatan penggunaan dalam "Pertimbangan untuk mengonfigurasi Layanan LoadBalancer."
Pengaturan lanjutan
|
Parameter |
Deskripsi |
|
Scheduling Algorithm |
Round Robin (RR) (default) atau Weighted Round Robin (WRR) |
|
Access Control |
Aktifkan atau nonaktifkan kontrol akses listener |
|
Health Check |
TCP atau HTTP. Lihat Pemeriksaan kesehatan CLB. |
|
Others |
Konfigurasikan dengan anotasi. Lihat Gunakan anotasi untuk mengonfigurasi instans CLB. |
Referensi konfigurasi NLB
Konfigurasikan parameter berikut saat membuat atau menggunakan kembali instans NLB di konsol ACK.
Buat instans NLB baru
|
Parameter |
Deskripsi |
|
Name |
Nama instans NLB |
|
Access Method |
Public Access atau Internal Access |
|
Billing Method |
Pay-as-you-go (Pay-by-CU). Lihat penagihan NLB. |
|
IP Version |
IPv4 atau Dual-stack |
|
Scheduling Algorithm |
Round-Robin: mendistribusikan secara berurutan. Weighted Round-Robin (default): server dengan bobot lebih tinggi menerima lebih banyak permintaan. Source IP Hashing: IP sumber yang sama diarahkan ke server yang sama. Four-Element Hashing: mengarahkan berdasarkan IP sumber, IP tujuan, port sumber, dan port tujuan. QUIC ID Hashing: ID QUIC yang sama diarahkan ke server yang sama. Weighted Least Connections: mengarahkan berdasarkan bobot dan jumlah koneksi. |
|
Health Check |
TCP (default): probe SYN. Konfigurasikan Health Check Response Timeout, Health Check Interval, Healthy Threshold, dan Unhealthy Threshold. HTTP: probe HEAD/GET. Konfigurasikan Domain Name (IP Internal Server Backend atau Nama Domain Kustom), Path, dan Health Check Status Codes (http_2xx, http_3xx, http_4xx, http_5xx; default: http_2xx). |
|
VPC |
Wilayah VPC dan ID VPC kluster |
|
Vswitch |
Pilih vSwitch di zona yang didukung, atau buat yang baru |
|
Others |
Konfigurasikan dengan anotasi. Lihat Gunakan anotasi untuk mengonfigurasi instans NLB. |
Gunakan instans NLB yang sudah ada
Pilih instans tersebut dan, jika diperlukan, aktifkan Overwrite Existing Listeners. Lihat Gunakan instans NLB yang sudah ada.
Tinjau batasan penggunaan sebelum menggunakan kembali NLB. Lihat Catatan penggunaan dalam "Pertimbangan untuk mengonfigurasi Layanan LoadBalancer."
Pengaturan lanjutan
|
Parameter |
Deskripsi |
|
Scheduling Algorithm |
Opsi yang sama seperti pada tabel Buat instans NLB di atas |
|
Health Check |
Opsi yang sama seperti pada tabel Buat instans NLB di atas |
|
VPC |
Wilayah VPC dan ID VPC kluster |
|
Vswitch |
Pilih vSwitch di zona yang didukung, atau buat yang baru |
|
Others |
Konfigurasikan dengan anotasi. Lihat Gunakan anotasi untuk mengonfigurasi instans NLB. |
Langkah selanjutnya
-
Untuk membiarkan ACK secara otomatis membuat dan mengelola instans SLB alih-alih menggunakan yang sudah ada, lihat Gunakan instans SLB yang dibuat otomatis untuk mengekspos aplikasi.
-
Jika anotasi tidak berlaku atau Layanan tidak dapat disambungkan ke instans SLB, lihat FAQ Layanan dan troubleshooting Layanan.