Service Mesh (ASM) memungkinkan Anda melakukan peningkatan canary pada gateway ASM untuk memberikan pengalaman peningkatan yang lancar. Topik ini menjelaskan cara melaksanakan peningkatan canary pada gateway ASM menggunakan metode peningkatan in-place.
Prasyarat
Sebuah klaster Container Service for Kubernetes (ACK) telah ditambahkan ke instance ASM versi 1.20 atau lebih baru. Untuk informasi lebih lanjut, lihat Tambahkan Klaster ke Instance ASM. Untuk panduan memperbarui instance ASM, lihat Perbarui Instance ASM.
Gateway ingress telah diterapkan. Untuk detail lebih lanjut, lihat Buat Gateway Ingress.
Informasi latar belakang
Gateway ASM mengelola ingress dan egress lalu lintas layanan dengan ketersediaan tinggi. Untuk memastikan kontinuitas bisnis selama peningkatan, Anda dapat menerapkan peningkatan canary pada gateway ASM. Metode ini memungkinkan Anda memverifikasi bahwa trafik dapat diteruskan dengan benar dari pod baru sebelum sepenuhnya meningkatkan gateway. Jika terjadi masalah, Anda dapat menghapus pod baru kapan saja dan melanjutkan setelah masalah diselesaikan.
Peningkatan canary pada gateway ASM berbeda dari peningkatan canary pada instance ASM. Peningkatan canary pada gateway ASM tersedia terlepas dari apakah Anda menggunakan peningkatan in-place atau peningkatan canary pada instance ASM.
Pengenalan peningkatan canary pada gateway ASM
Peningkatan bidang kontrol dan bidang data dalam instance ASM bersifat independen. Setelah peningkatan bidang kontrol selesai, Anda dapat meningkatkan bidang data. Berikut adalah cara kerja peningkatan canary pada gateway ASM:
Buat Deployment yang hanya menyediakan satu pod di bidang data sesuai dengan bidang kontrol. Deployment ini disebut Canary Deployment dan termasuk dalam Service yang sama dengan Deployment asli gateway ASM, tetapi namanya memiliki akhiran -canary.
Jika terdapat Deployment dengan nama yang sama dengan Canary Deployment di namespace tempat gateway ASM berada, Deployment tersebut tidak akan ditimpa. Sebelum melakukan peningkatan canary pada gateway ASM, pastikan tidak ada Deployment dengan nama yang sama dengan Canary Deployment. Sebagai contoh, jika nama gateway ASM adalah ingressgateway, pastikan tidak ada Deployment bernama istio-ingressgateway-canary di namespace istio-system.
Peningkatan In-Place pada Instance ASM
Setelah bidang kontrol instance ASM ditingkatkan, gateway ASM tetap berada di versi aslinya. Buat Canary Deployment terlebih dahulu. Setelah Canary Deployment siap, alihkan sebagian trafik ke pod yang dibuat oleh Canary Deployment. Amati apakah trafik diteruskan dengan benar. Jika tidak, simpan log kesalahan dan hapus Canary Deployment. Selesaikan masalah dan redeploy Canary Deployment untuk verifikasi distribusi trafik. Setelah memastikan trafik dapat diteruskan dengan benar, tingkatkan gateway ASM ke versi yang diinginkan.
Peningkatan Canary pada Instance ASM
Jika Anda melakukan peningkatan canary pada instance ASM, Anda juga dapat menerapkan peningkatan canary pada gateway ASM. Selama peningkatan canary pada instance ASM, gateway ASM memasuki status menunggu untuk ditingkatkan setelah bidang kontrol versi baru digunakan secara default. Terapkan Canary Deployment untuk verifikasi distribusi trafik. Setelah memastikan trafik dapat diteruskan dengan benar, tingkatkan gateway ASM.
Setelah gateway ASM ditingkatkan ke versi baru, modifikasi konfigurasi untuk menghapus Canary Deployment yang telah diterapkan.
Langkah 1: Tingkatkan bidang kontrol
Untuk meminimalkan risiko kehilangan trafik selama peningkatan, aktifkan fitur graceful shutdown untuk gateway ASM sebelum meningkatkan gateway ASM. Untuk informasi lebih lanjut, lihat Aktifkan Graceful Shutdown untuk Mencegah Kehilangan Trafik.
Masuk ke Konsol ASM. Di panel navigasi sisi kiri, pilih .
Di halaman Mesh Management, klik nama instance ASM. Di panel navigasi sisi kiri, pilih .
Di tab In-place Upgrades pada halaman Upgrade Management, klik Perform Upgrade Precheck. Di pesan Note, klik OK.
CatatanJika pesan Currently, it is the latest version and does not need to be upgraded muncul di halaman, instance ASM sudah dalam versi terbaru dan tidak dapat ditingkatkan.
Setelah pemeriksaan pra-peningkatan berhasil, klik Upgrade. Di pesan Note, klik OK.
Langkah 2: Terapkan Canary Deployment untuk gateway ASM
Anda dapat menambahkan anotasi untuk menerapkan Canary Deployment.
Gunakan salah satu metode berikut untuk menambahkan anotasi
asm.alibabacloud.com/enable-canary-deployment: "true"ke file YAML gateway ASM guna menerapkan Canary Deployment:Metode 1: Gunakan Konsol ASM
Masuk ke Konsol ASM. Di panel navigasi sisi kiri, pilih .
Di halaman Mesh Management, klik nama instance ASM. Di panel navigasi sisi kiri, pilih .
Di halaman Ingress Gateway, temukan gateway ingress yang diinginkan dan klik YAML di kolom Aksi. Di kotak dialog Edit, tambahkan anotasi
asm.alibabacloud.com/enable-canary-deployment: "true"ke bidangannotationsdi bagianmetadatadan klik OK.
Metode 2: Jalankan perintah kubectl
Jalankan perintah berikut untuk membuka file YAML gateway ASM:
kubectl edit IstioGateway <YOUR-INGRESSGATEWAY-NAME> -n istio-systemModifikasi file YAML untuk menambahkan anotasi
asm.alibabacloud.com/enable-canary-deployment: "true"ke bidangannotationsdi bagianmetadata, lalu simpan file tersebut.
Gunakan kubectl untuk terhubung ke bidang data berdasarkan informasi di file kubeconfig, dan jalankan perintah berikut untuk melihat Canary Deployment yang telah diterapkan.
Dalam contoh ini, nama gateway ASM adalah
ingressgateway. Gantilah dengan nama gateway Anda.kubectl -n istio-system get deployment | grep ingressgatewayKeluaran yang Diharapkan:
istio-ingressgateway 1/1 1 1 10m istio-ingressgateway-canary 1/1 1 1 55sDeployment dengan akhiran
-canaryadalah Canary Deployment.Setelah Canary Deployment siap, amati apakah sebagian trafik mengalir ke pod yang dibuat oleh Canary Deployment. Jika terjadi pengecualian, simpan log gateway ASM dan hapus anotasi yang ditambahkan. Canary Deployment akan dihapus dan semua trafik mengalir ke pod yang dibuat oleh Deployment asli yang namanya tidak memiliki akhiran -canary. Setelah masalah diselesaikan, redeploy Canary Deployment untuk verifikasi distribusi trafik.
Langkah 3: Tingkatkan gateway ASM setelah verifikasi distribusi trafik berhasil
Masuk ke Konsol ASM. Di panel navigasi sisi kiri, pilih .
Di halaman Mesh Management, klik nama instance ASM. Di panel navigasi sisi kiri, pilih .
Di kolom Upgrade bagian Data Plane, pilih gateway ASM yang ingin Anda tingkatkan dan klik Upgrade Gateway. Di pesan Note, klik OK.
Langkah 4: Hapus Canary Deployment
Setelah gateway ASM ditingkatkan, hapus anotasi yang ditambahkan di Langkah 2. Canary Deployment akan dihapus secara otomatis.
Versi Canary Deployment selalu sama dengan versi bidang kontrol. Jika Anda tidak menghapus Canary Deployment, Canary Deployment akan ditingkatkan secara bersamaan ketika Anda meningkatkan bidang kontrol lain kali.