Per 28 Februari 2023, SLB Ingress telah ditinggalkan (deprecated) di Container Service for Kubernetes (ACK) Serverless. Anda tidak dapat lagi menginstal atau mengelola controller SLB Ingress di kluster Anda, dan kami tidak lagi menyediakan dukungan teknis untuk SLB Ingress. Kami menyarankan agar Anda segera melakukan migrasi ke ALB Ingress. Topik ini menjelaskan cara melakukan migrasi dari SLB Ingress ke ALB Ingress.
Informasi latar belakang
SLB menyediakan kemampuan Lapisan 7 yang terbatas. Misalnya, SLB tidak mendukung fitur seperti pengubahan ulang Header HTTP, Pengalihan, dan Pembatasan laju. Anda juga perlu mengelola spesifikasi instans secara manual, yang sangat membatasi SLB Ingress. Untuk mengatasi keterbatasan tersebut, kami memperkenalkan gerbang ALB Ingress, yang dirancang khusus untuk Lapisan 7 dan menyediakan manajemen trafik Ingress yang lebih andal.
ALB Ingress didasarkan pada Alibaba Cloud Application Load Balancer (ALB). Dibandingkan dengan SLB Ingress, ALB Ingress mendukung routing kompleks (berdasarkan header dan cookie) serta penemuan sertifikat otomatis. ALB Ingress mendukung protokol HTTP, HTTPS, dan QUIC, serta lebih baik dalam menangani kebutuhan manajemen trafik Lapisan 7 untuk aplikasi cloud-native. Untuk perbandingan fitur antara ALB dan SLB, lihat Pengenalan keluarga produk SLB.
Proses migrasi
Contoh migrasi
Topik ini menggunakan resource Ingress berikut sebagai contoh. Titik akhir Ingress di-resolve ke nama domain demo.ingress.vip.
Masukkan demo.ingress.vip di bilah alamat browser Anda. Halaman akan menampilkan Welcome to nginx!.
Langkah 1: Membuat ALB Ingress
-
Instal controller ALB Ingress. Untuk informasi selengkapnya, lihat Mengelola controller ALB Ingress.
-
Dapatkan file kubeconfig kluster dan gunakan kubectl untuk menghubungkan ke kluster.
-
Buat AlbConfig.
-
Gunakan konten berikut untuk membuat albconfig.yaml.
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: HTTPzoneMappings: ID vSwitch untuk ALB Ingress. Anda harus menentukan minimal dua vSwitch di zona berbeda. vSwitch tersebut harus berada dalam VPC yang sama dengan kluster Anda.
-
Jalankan perintah berikut untuk membuat AlbConfig.
kubectl apply -f albconfig.yaml -
Jalankan perintah berikut untuk memeriksa apakah instans ALB telah dibuat.
kubectl get albconfig <AlbConfig-name>Output yang diharapkan:
NAME ALBID DNSNAME PORT&PROTOCOL CERTID AGE alb-demo alb-eeee6gtqbmrm19**** alb-eeee6gtqbmrm19****.cn-shenzhen.alb.aliyuncs.com 27s
-
-
Buat IngressClass.
-
Gunakan konten berikut untuk membuat ingressclass.yaml.
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.name: Nama
AlbConfigyang akan di-bind. -
Jalankan perintah berikut untuk membuat IngressClass.
kubectl apply -f ingressclass.yaml
-
-
Buat ALB Ingress.
-
Gunakan konten berikut untuk membuat albingress.yaml.
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: Prefix-
name: Nama Ingress. Nama ini harus berbeda dari nama SLB Ingress.
-
ingressClassName: Nama IngressClass.
-
-
Jalankan perintah berikut untuk membuat ALB Ingress.
kubectl apply -f albingress.yaml -
Jalankan perintah berikut untuk mendapatkan titik akhir ALB Ingress.
kubectl get ingOutput yang diharapkan:
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 10m 46sCatat titik akhir ALB Ingress dari output tersebut. Pada contoh ini, titik akhirnya adalah
alb-eeee6gtqbmrm1****.cn-shenzhen.alb.aliyuncs.com. -
Jalankan perintah berikut untuk mengakses aplikasi Nginx melalui ALB Ingress.
curl -H "Host: demo.ingress.vip" http://alb-eeee6gtqbmrm1****.cn-shenzhen.alb.aliyuncs.comOutput yang diharapkan:
<!DOCTYPE html> <html> <head> <title>Welcome to nginx!</title> <style> body { width: 35em; margin: 0 auto; font-family: Tahoma, Verdana, Arial, sans-serif; } </style> .............
-
Langkah 2: Mengalihkan trafik ke ALB Ingress
Perbarui rekaman DNS untuk demo.ingress.vip agar mengarah ke titik akhir ALB, bukan titik akhir SLB. Hal ini akan mengalihkan trafik ke layanan Nginx melalui ALB Ingress.
-
Masuk ke Konsol DNS Alibaba Cloud.
-
Di halaman Configure domain name, klik nama domain di tab All Zone Names.
-
Di halaman Settings, temukan rekaman DNS yang dituju dan klik Modify di kolom Actions.
-
Di kotak dialog Modify Record, ubah Record Value menjadi titik akhir ALB Ingress (pada contoh ini,
alb-eeee6gtqbmrm1****.cn-shenzhen.alb.aliyuncs.com), lalu klik OK. -
Masukkan demo.ingress.vip di bilah alamat browser Anda.
Browser akan menampilkan Welcome to nginx!. Hal ini mengonfirmasi bahwa trafik kini dialihkan melalui ALB Ingress, sehingga migrasi telah selesai.
Langkah 3: Menghapus SLB Ingress
-
Hapus SLB Ingress.
Di panel navigasi kiri halaman manajemen kluster, pilih .
-
Di bagian atas halaman Ingresses, pilih Namespace yang sesuai. Temukan SLB Ingress, lalu di kolom Actions, pilih .
-
Di kotak dialog yang muncul, klik OK.
-
Uninstal controller SLB Ingress.
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
Di halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Add-ons.
-
Di halaman Add-ons, klik tab Others. Temukan SLB Ingress controller dan klik Uninstall.
-
Di kotak dialog yang muncul, klik OK.
FAQ
Apakah saya dapat melakukan migrasi tanpa gangguan (seamless) dari SLB Ingress ke ALB Ingress?
Tidak. Migrasi langsung di tempat (in-place) tidak didukung karena ALB dan SLB merupakan jenis load balancer yang berbeda.