Saat menjalankan gerbang masuk Istio yang dikelola sendiri bersamaan dengan Service Mesh (ASM), migrasi traffic ke gerbang masuk ASM memungkinkan manajemen terpusat melalui lapisan kontrol ASM. Kedua gerbang tersebut berbagi instans Classic Load Balancer (CLB), dan pemisahan traffic berbasis bobot memungkinkan pengalihan traffic secara bertahap dengan downtime minimal.
Cara kerja

Migrasi ini mencakup tiga tahap:
Buat gerbang masuk ASM di kluster Kubernetes yang sama dengan gerbang Istio yang sudah ada dan sambungkan ke instans CLB yang sama.
Migrasikan konfigurasi Istio—resource Gateway, VirtualService, dan DestinationRule—agar mengarah ke gerbang ASM yang baru.
Alihkan traffic dengan menyesuaikan bobot backend pada instans CLB hingga gerbang ASM menangani 100% permintaan.
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Instans ASM dengan kluster Kubernetes yang telah ditambahkan. Untuk detailnya, lihat Create an ingress gateway.
Gerbang masuk Istio yang dikelola sendiri yang sedang berjalan di kluster yang sama.
Akses administratif ke konsol CLB (diperlukan saat menggunakan kembali instans CLB yang sudah ada).
Langkah 1: Buat gerbang masuk ASM
Buat gerbang masuk baru untuk instans ASM. Untuk prosedur lengkapnya, lihat Create an ingress gateway.
Saat membuat gerbang tersebut:
Nama gerbang — Pilih nama yang berbeda dari gerbang Istio yang sudah ada. Tambahkan akhiran
-asmuntuk membedakannya, misalnyaingressgateway-asm.Kluster target — Pada Langkah 3 prosedur pembuatan, atur parameter Cluster ke kluster Kubernetes tempat gerbang masuk Istio yang dikelola sendiri berjalan.
Titik masuk traffic — Arahkan rekaman DNS untuk domain ke alamat IP gerbang masuk ASM yang baru. Jika perubahan rekaman DNS tidak memungkinkan, bagikan instans CLB yang sudah ada antara kedua gerbang dan kendalikan distribusi traffic melalui bobot backend. Panduan ini mengasumsikan pendekatan berbagi CLB.
Gunakan kembali instans CLB yang sudah ada
Saat gerbang masuk ASM berbagi instans CLB dengan gerbang Istio yang dikelola sendiri, tambahkan anotasi layanan berikut ke YAML gerbang:
| Anotasi | Deskripsi |
|---|---|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id | ID instans CLB yang akan digunakan kembali, misalnya lb-xxxxx. |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners | Atur ke false. Gerbang Istio secara default menimpa listener CLB; anotasi ini mencegah gerbang ASM melakukan hal yang sama. |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vgroup-port | Memetakan kelompok vServer ke port. Format: "<vserver-group-id>:<port>". Pisahkan beberapa pemetaan dengan koma, misalnya "<vserver-group-id-1>:80, <vserver-group-id-2>:443". |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-weight | Bobot backend untuk gerbang ASM. Atur ke 0 sebelum aturan routing dikonfigurasi agar CLB tidak meneruskan traffic ke gerbang yang belum siap. |
Contoh YAML:
serviceAnnotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id: "lb-xxxxx" # Ganti dengan ID instans CLB Anda.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners: 'false' # Pertahankan listener yang sudah ada.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vgroup-port: "<your-vserver-group-id>:80" # Ganti dengan ID kelompok vServer Anda.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-weight: "60" # Atur ke 0 jika belum ada aturan routing atau terjadi exception.Untuk detail tentang penggunaan kembali instans CLB yang dibuat melalui tipe layanan LoadBalancer, lihat FAQ: Reuse a CLB instance created by a self-managed Istio Service.
Langkah 2: Migrasikan konfigurasi Istio
Perbarui bidang
selector.istiodalam resource Gateway agar mengarah ke gerbang masuk ASM:spec: selector: istio: ingressgateway-asmMigrasikan resource VirtualService dan DestinationRule terkait ke lapisan kontrol ASM.
Langkah 3: Alihkan traffic dengan routing berbasis bobot
Pindahkan traffic dari gerbang Istio yang dikelola sendiri ke gerbang ASM dengan menyesuaikan bobot backend pada instans CLB yang dibagikan:
Atur bobot gerbang ASM ke nilai rendah, seperti
10, dan verifikasi bahwa permintaan diarahkan dengan benar.Pantau laju error dan latensi. Jika traffic mengalir sesuai harapan, tingkatkan bobot gerbang ASM secara bertahap.
Lanjutkan hingga bobot gerbang ASM mencapai
100dan bobot gerbang Istio mencapai0.
Sesuaikan bobot melalui anotasi layanan service.beta.kubernetes.io/alibaba-cloud-loadbalancer-weight:
Gerbang Istio yang dikelola sendiri: Edit anotasi pada Service gerbang Istio.
ASM gateway: Ubah anotasi pada layanan gerbang masuk ASM.
FAQ: Gunakan kembali instans CLB yang dibuat oleh Service Istio yang dikelola sendiri
Jika instans CLB diprovisikan secara otomatis saat layanan bertipe LoadBalancer dibuat untuk gerbang masuk Istio yang dikelola sendiri, lakukan langkah-langkah berikut sebelum menggunakannya kembali:
Buka konsol CLB dan temukan instans CLB tersebut. Hapus dua label berikut dari instans tersebut:
kubernetes.do.not.deleteack.aliyun.com
Tambahkan anotasi berikut ke Service gerbang masuk Istio yang dikelola sendiri. Ganti placeholder dengan nilai aktual:
Placeholder Deskripsi <clb-instance-id>ID instans CLB yang ditampilkan di konsol CLB. <vserver-group-id>ID kelompok vServer yang terkait dengan instans CLB. <port>Nomor port listener, misalnya 80atau443.service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners: "false" service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id: <clb-instance-id> service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vgroup-port: <vserver-group-id>:<port> service.beta.kubernetes.io/alibaba-cloud-loadbalancer-weight: "100"