Server Load Balancer (SLB) Ingress telah dihentikan pada 28 Februari 2023. Container Service for Kubernetes (ACK) Serverless tidak lagi memberikan dukungan teknis untuk SLB Ingress setelah tanggal tersebut, dan Anda tidak dapat menginstal atau mengelola controller SLB Ingress di kluster ACK Serverless. Topik ini menjelaskan cara melakukan migrasi SLB Ingress yang sudah ada ke Application Load Balancer (ALB) Ingress.
Migrasi lancar (peralihan tanpa downtime) dari SLB Ingress ke ALB Ingress tidak didukung karena kedua jenis Ingress tersebut menggunakan implementasi dasar yang berbeda.
Mengapa bermigrasi ke ALB Ingress
SLB menyediakan kemampuan Lapisan 7 yang terbatas. SLB tidak mendukung penulisan ulang HTTP (HTTP rewrites), pengalihan (redirects), penggantian (overwrites), atau pembatasan kecepatan (throttling), dan Anda harus mengatur spesifikasi instans secara manual. ALB Ingress mengatasi keterbatasan tersebut:
-
Aturan routing kompleks berdasarkan Header HTTP atau cookie
-
Penemuan sertifikat SSL/TLS secara otomatis
-
Dukungan protokol HTTP, HTTPS, dan Quick UDP Internet Connections (QUIC)
Untuk informasi lebih lanjut mengenai perbandingan antara ALB dan SLB, lihat Apa itu SLB?
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
-
Kluster ACK Serverless dengan setidaknya satu SLB Ingress yang telah dideploy
-
kubectl yang telah dikonfigurasi untuk terhubung ke kluster. Lihat Dapatkan file kubeconfig kluster dan gunakan kubectl untuk terhubung ke kluster
-
Setidaknya dua vSwitch di zona ketersediaan yang berbeda, keduanya berada dalam Virtual Private Cloud (VPC) yang sama dengan kluster Anda (diperlukan oleh ALB)
Ikhtisar migrasi
Migrasi terdiri dari tiga tahap:
-
Buat ALB Ingress bersamaan dengan SLB Ingress yang sudah ada dan verifikasi bahwa ALB Ingress berfungsi.
-
Alihkan DNS agar mengarah ke titik akhir ALB Ingress.
-
Hapus SLB Ingress dan uninstal controller SLB Ingress.
Langkah 1: Buat ALB Ingress
-
Instal controller ALB Ingress. Lihat Kelola controller ALB Ingress.
-
Buat
AlbConfiguntuk menyediakan instans ALB.-
Buat
albconfig.yamldengan konten berikut:apiVersion: alibabacloud.com/v1 kind: AlbConfig metadata: name: alb-demo spec: config: name: alb-test addressType: Internet zoneMappings: - vSwitchId: vsw-wz9e2usil7e5an1xi**** - vSwitchId: vsw-wz92lvykqj1siwvif**** listeners: - port: 80 protocol: HTTPGanti nilai
vSwitchIddengan ID vSwitch Anda. Anda harus menentukan setidaknya dua vSwitch di zona ketersediaan yang berbeda, dan keduanya harus berada dalam VPC yang sama dengan kluster Anda. -
Terapkan manifes:
kubectl apply -f albconfig.yaml -
Verifikasi bahwa instans ALB telah dibuat:
kubectl get albconfig alb-demoOutput akan tampak seperti berikut:
NAME ALBID DNSNAME PORT&PROTOCOL CERTID AGE alb-demo alb-eeee6gtqbmrm19**** alb-eeee6gtqbmrm19****.cn-shenzhen.alb.aliyuncs.com 27sCatat nilai
DNSNAME— Anda akan menggunakannya sebagai titik akhir ALB Ingress pada Langkah 2. JikaALBIDmasih kosong setelah beberapa menit, periksa log controller ALB Ingress untuk menemukan error provisioning. Untuk panduan troubleshooting, lihat Kelola controller ALB Ingress.
-
-
Buat
IngressClassuntuk menghubungkan resource Ingress keAlbConfig.-
Buat
ingressclass.yamldengan konten berikut:apiVersion: networking.k8s.io/v1 kind: IngressClass metadata: name: alb spec: controller: ingress.k8s.alibabacloud/alb parameters: apiGroup: alibabacloud.com kind: AlbConfig name: alb-demoparameters.nameharus sesuai dengan namaAlbConfig(alb-demodalam contoh ini). -
Terapkan manifes:
kubectl apply -f ingressclass.yaml
-
-
Buat ALB Ingress.
-
Buat
albingress.yamldengan konten berikut:apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: demo-ingress-alb namespace: default spec: ingressClassName: alb rules: - host: demo.ingress.vip http: paths: - backend: service: name: nginx port: number: 80 path: / pathType: Prefixnameharus berbeda dari nama SLB Ingress yang sudah ada.ingressClassNameharus sesuai dengan namaIngressClass(alb). -
Terapkan manifes:
kubectl apply -f albingress.yaml -
Verifikasi titik akhir ALB Ingress:
kubectl get ingOutput akan tampak seperti berikut:
NAME CLASS HOSTS ADDRESS PORTS AGE demo-ingress slb demo.ingress.vip 120.79.**.** 80 35m demo-ingress-alb alb demo.ingress.vip alb-eeee6gtqbmrm1****.cn-shenzhen.alb.aliyuncs.com 80 46sCatat
ADDRESSdaridemo-ingress-alb— ini adalah titik akhir ALB Ingress. -
Konfirmasi bahwa traffic mencapai aplikasi Anda melalui ALB Ingress:
curl -H "Host: demo.ingress.vip" http://alb-eeee6gtqbmrm1****.cn-shenzhen.alb.aliyuncs.comOutput yang diharapkan (disingkat):
<!DOCTYPE html> <html> <head> <title>Welcome to nginx!</title> ...
-
Langkah 2: Alihkan DNS ke ALB Ingress
Perbarui rekaman DNS untuk domain Anda agar mengarah ke titik akhir ALB Ingress, menggantikan titik akhir SLB Ingress dengan titik akhir ALB Ingress.
-
Masuk ke Konsol DNS Alibaba Cloud.
-
Pada halaman Domain Name Resolution, klik nama domain di kolom Authoritative Domain Names.
-
Pada halaman DNS Settings, klik Modify di kolom Actions.
-
Pada panel Modify DNS Record, atur Record Value ke titik akhir ALB Ingress (misalnya,
alb-eeee6gtqbmrm1****.cn-shenzhen.alb.aliyuncs.com), lalu klik OK. -
Verifikasi bahwa domain tersebut mengarah ke ALB Ingress. Buka
demo.ingress.vipdi browser — Welcome to nginx! seharusnya muncul.
Langkah 3: Hapus SLB Ingress dan uninstal controller
Setelah memastikan bahwa traffic mengalir melalui ALB Ingress, hapus SLB Ingress dan controller-nya.
-
Hapus SLB Ingress.
-
Pada panel navigasi kiri halaman detail kluster, pilih Network > Ingresses.
-
Di bagian atas halaman Ingresses, pilih namespace yang berisi SLB Ingress. Temukan SLB Ingress tersebut dan pilih More > Delete di kolom Actions.
-
Klik OK untuk mengonfirmasi.
-
-
Uninstal controller SLB Ingress.
-
Masuk ke Konsol ACK. Pada panel navigasi kiri, klik Clusters.
-
Pada halaman Clusters, klik nama kluster Anda. Di panel kiri, pilih Operations > Add-ons.
-
Pada halaman Add-ons, klik tab Others. Temukan SLB Ingress Controller dan klik Uninstall.
-
Klik OK untuk mengonfirmasi.
-