全部产品
Search
文档中心

Alibaba Cloud Service Mesh:Gunakan mode canary untuk meningkatkan stabilitas upgrade

更新时间:Dec 05, 2025

Rilis canary melibatkan penerapan versi aplikasi baru sebagai canary sementara versi aslinya tetap tersedia. Strategi ini memungkinkan Anda menguji kinerja versi baru, mengidentifikasi dan menyelesaikan masalah lebih awal, serta memastikan stabilitas sistem secara keseluruhan. Topik ini menjelaskan cara menggunakan mode canary untuk meningkatkan stabilitas upgrade.

Applicability

How it works

Alibaba Cloud Service Mesh (ASM) mendukung mode upgrade berbasis revision dan label yang memungkinkan Anda melakukan upgrade canary terhadap versi lapisan kontrol baru dengan lebih stabil dan aman. Dalam mode upgrade ini, proxy mesh pada bidang data dikaitkan dengan versi lapisan kontrol tertentu. Hal ini memungkinkan Anda menerapkan versi baru di kluster dengan risiko rendah. Tidak ada proxy yang terhubung ke versi baru hingga Anda secara eksplisit memilihnya. Anda juga dapat secara bertahap memigrasikan workload ke lapisan kontrol baru. Setiap lapisan kontrol independen disebut revision dan memiliki label istio.io/rev.

Untuk mendukung upgrade berbasis revision ini, Istio memperkenalkan label istio.io/rev untuk namespace. Label ini menunjukkan versi lapisan kontrol mana yang menyuntikkan proxy Sidecar untuk workload di namespace terkait. Misalnya, label istio.io/rev=1-23-6 menunjukkan bahwa proxy Sidecar versi 1.23.6 akan disuntikkan untuk workload di namespace tersebut.

Selama upgrade canary, Anda dapat terlebih dahulu meng-upgrade beberapa layanan untuk memverifikasi apakah versi tujuan memenuhi harapan Anda. Jika versi tersebut tidak memenuhi harapan, Anda dapat segera melakukan rollback untuk memastikan stabilitas layanan. Setelah memverifikasi bahwa versi baru memenuhi harapan, Anda dapat mempromosikan versi canary menjadi versi stabil. Anda kemudian dapat menggunakan pembaruan bergulir (rolling update) untuk meng-upgrade semua workload ke versi terbaru. Hal ini menyelesaikan upgrade bidang data. Terakhir, Anda dapat menguninstall versi lama untuk menyelesaikan proses upgrade.

Preparations

Upgrade canary mengharuskan Anda menentukan versi proxy Sidecar yang disuntikkan menggunakan label namespace. Oleh karena itu, Anda harus mengonfigurasi kebijakan injeksi dengan benar. Ikuti langkah-langkah berikut untuk memastikan konfigurasi kebijakan injeksi Anda memenuhi persyaratan untuk upgrade canary.

  1. Masuk ke ASM console. Di panel navigasi sebelah kiri, pilih Service Mesh > Mesh Management.

  2. Pada halaman Mesh Management, klik nama instans ASM. Di panel navigasi sebelah kiri, pilih Data Plane Component Management > Sidecar Proxy injection.

  3. Pada halaman Injection Policy Configuration, di bagian Injection Policy Configuration Management, pastikan bahwa The Label Of The Namespace Where The Pod Is Located Needs To Meet The Condition diatur ke Contains Istio-injection: Enabled.Dingtalk_20230724162312.png

    Catatan

    Label istio-injection: enabled memiliki semantik yang sama dengan label istio.io/rev: stable. Selama upgrade canary, Anda dapat menggunakan label istio.io/rev: stable untuk menyuntikkan versi stabil proxy mesh ke pod di namespace terkait. Anda juga dapat menggunakan label istio.io/rev: canary untuk menyuntikkan versi canary proxy mesh ke pod di namespace terkait.

    Setelah upgrade, injeksi tetap berfungsi normal meskipun Anda tidak mengganti istio.io/rev:stable dengan istio-injection: enabled karena kedua label tersebut memiliki semantik yang sama.

    Gambar berikut menunjukkan status sebelum upgrade:

Step 1: Upgrade the ASM control plane

  1. Masuk ke ASM console. Di panel navigasi sebelah kiri, pilih Service Mesh > Mesh Management.

  2. Pada halaman Mesh Management, klik nama instans ASM. Di panel navigasi sebelah kiri, pilih ASM Instance > Upgrade Management.

  3. Pada halaman Upgrade Management, klik tab Canary Upgrade. Pada tab Control Plane, pilih Canary Version dan centang Create A New Server Load Balancer (CLB) Instance. Klik Confirm. Pada kotak dialog Confirm Upgrade?, klik OK.

    Upgrade canary dapat melewati paling banyak satu versi minor. Dalam contoh ini, versi instans ASM adalah 1.22, sehingga Anda dapat meng-upgrade-nya hingga maksimal versi 1.23. Topik ini menggunakan contoh upgrade ke v1.23.6. Saat Anda menerapkan versi tujuan untuk upgrade canary, instans CLB terkait akan dibuat. Jika tidak ada persyaratan khusus, Anda dapat memilih spesifikasi default untuk instans CLB. Untuk informasi selengkapnya mengenai penagihan CLB, lihat Billing overview of CLB.

    Penerapan versi canary merupakan proses asinkron dan memerlukan waktu beberapa menit. Tunggu hingga komponen terkait selesai diterapkan. Setelah versi baru diterapkan, tampilan halaman akan seperti pada gambar berikut.

    Snipaste_2025-10-28_10-10-05

    Gambar berikut menunjukkan status pada titik ini:

Step 2: Upgrade the injected proxy for reviews-v2 to the new version

Dalam Langkah 1, Anda telah menerapkan lapisan kontrol Istio versi v1.23.6 menggunakan upgrade canary. Langkah-langkah berikut menjelaskan cara memperbarui versi proxy mesh yang disuntikkan untuk versi reviews-v2 dari aplikasi Bookinfo ke v1.23 dan memverifikasi bahwa versi ini memenuhi harapan Anda.

  1. Masuk ke ASM console. Di panel navigasi sebelah kiri, pilih Service Mesh > Mesh Management.

  2. Pada halaman Mesh Management, klik nama instans ASM. Di panel navigasi sebelah kiri, pilih ASM Instance > Global Namespace.

  3. Pada halaman Global Namespace, di kolom Automatic Injection, periksa apakah label untuk namespace default adalah istio-injection: enabled.

    Jika label tersebut adalah istio-injection: enabled, maka proxy mesh versi 1.22 disuntikkan.

  4. Pada halaman Global Namespace, di kolom Automatic Injection, temukan namespace default dan klik Switch To Inject Version 1-23-6. Pada kotak dialog Confirm, klik OK.

    Label namespace global default beralih menjadi istio.io/rev: canary. Label namespace default pada bidang data juga segera disinkronkan menjadi istio.io/rev: canary. Halaman Global Namespace kemudian menunjukkan bahwa proxy mesh versi 1.23 disuntikkan untuk namespace default. Workload (pod) baru yang dibuat di namespace default akan disuntikkan dengan proxy mesh versi 1.23. Label namespace lainnya tidak berubah. Mereka tetap disuntikkan dengan proxy mesh versi 1.22.

    Catatan

    Langkah-langkah di atas menjelaskan cara mengalihkan versi proxy mesh Sidecar yang disuntikkan untuk namespace tempat injeksi otomatis sudah diaktifkan sebelum upgrade. Untuk namespace tempat injeksi proxy mesh Sidecar belum diaktifkan sebelum upgrade, Anda dapat mengaktifkan injeksi otomatis seperti biasa. Saat mengaktifkan injeksi, Anda dapat memilih versi proxy mesh Sidecar yang diperlukan. Service mesh akan menambahkan label istio.io/rev:stable atau istio.io/rev:canary ke namespace berdasarkan pilihan Anda.

  5. Lakukan pembaruan bergulir (rolling update) untuk workload reviews-v2.

    1. Masuk ke ACK console. Di panel navigasi sebelah kiri, pilih Clusters.

    2. Pada halaman Clusters, klik nama kluster target. Di panel navigasi sebelah kiri, pilih Workloads > Deployments.

    3. Pada halaman Deployments, temukan reviews-v2. Di kolom Actions, pilih More > Redeploy. Pada kotak dialog Redeploy, klik OK.

  6. Pada halaman Deployments, klik reviews-v2. Pada tab Pods, periksa apakah pod yang sesuai dengan reviews-v2 berhasil dimulai setelah pembaruan bergulir dan apakah pod baru disuntikkan dengan proxy Sidecar versi 1.23.

    Snipaste_2025-10-a-03-28

    Pod yang sesuai dengan reviews-v2 berhasil dimulai setelah pembaruan bergulir, dan pod baru disuntikkan dengan proxy mesh Sidecar v1.23.

  7. Buka browser dan akses halaman Bookinfo. Periksa apakah traffic memenuhi harapan Anda.

    Seperti yang ditunjukkan pada gambar berikut, Anda dapat mengakses versi reviews-v2. Hasil ini sesuai harapan.访问bookinfo页面.png

    Gambar berikut menunjukkan status pada titik ini:

Step 3: Roll back reviews-v2 to version 1.22

Jika verifikasi dalam Langkah 2 gagal, atau untuk alasan rollback lainnya, Anda dapat mengikuti langkah-langkah berikut.

  1. Masuk ke ASM console. Di panel navigasi sebelah kiri, pilih Service Mesh > Mesh Management.

  2. Pada halaman Mesh Management, klik nama instans ASM. Di panel navigasi sebelah kiri, pilih ASM Instance > Global Namespace.

  3. Pada halaman Global Namespace, di kolom Automatic Injection, temukan namespace default dan klik Switch to inject version 1-22-6. Pada kotak dialog Confirm, klik OK.

    Sebelum rollback, label namespace adalah istio.io/rev: canary, dan proxy mesh versi 1.23 disuntikkan untuk namespace default.

    Setelah rollback, label beralih menjadi istio.io/rev: stable. Label namespace default pada bidang data juga disinkronkan menjadi istio.io/rev: stable. Sekarang, proxy mesh versi 1.22 disuntikkan untuk namespace default.

  4. Redeploy workload reviews-v2 di konsol ACK.

    1. Masuk ke ACK console. Di panel navigasi sebelah kiri, pilih Clusters.

    2. Pada halaman Clusters, klik nama kluster target. Di panel navigasi sebelah kiri, pilih Workloads > Deployments.

    3. Pada halaman Deployments, atur Namespace ke default. Di kolom Actions, temukan reviews-v2 dan pilih More > Redeploy. Pada kotak dialog Redeploy, klik OK.

    4. Pada halaman Deployments, klik nama reviews-v2. Pada tab Pods, periksa apakah pod yang sesuai dengan reviews-v2 berhasil dimulai setelah pembaruan bergulir dan apakah pod baru disuntikkan dengan proxy Sidecar versi 1.22.

      Snipaste_2025-10-a-03-28

      Pod yang sesuai dengan reviews-v2 berhasil dimulai setelah pembaruan bergulir, dan pod baru disuntikkan dengan proxy Sidecar versi 1.22.

Step 4: Revoke the upgrade

Setelah rollback berhasil, Anda dapat mencabut upgrade canary dan mengembalikan instans ASM ke versi asli 1.22.

Penting

Sebelum mencabut upgrade, pastikan semua namespace disuntikkan dengan versi proxy Sidecar stabil. Jika tidak, Anda tidak dapat mencabut upgrade tersebut.

  1. Masuk ke ASM console. Di panel navigasi sebelah kiri, pilih Service Mesh > Mesh Management.

  2. Pada halaman Mesh Management, klik nama instans ASM. Di panel navigasi sebelah kiri, pilih ASM Instance > Upgrade Management.

  3. Pada halaman Upgrade Management, pada tab Canary Upgrade, klik Revoke Upgrade. Pada kotak dialog Confirm to Revoke the Upgrade?, klik OK.

    Setelah Anda mengklik Revoke Upgrade, komponen lapisan kontrol dari versi rilis canary (versi 1.23 dalam contoh ini) dihapus. Hanya komponen lapisan kontrol dari versi stabil (versi 1.22 dalam contoh ini) yang dipertahankan.

    Gambar berikut menunjukkan status pada titik ini:

Step 5: Re-upgrade and verify

Seluruh instans ASM kini berada dalam kondisi sebelum Langkah 1 dan siap untuk di-upgrade. Contoh ini hanya memverifikasi workload reviews-v1, reviews-v2, dan reviews-v3. Anda dapat mengikuti langkah-langkah sebelumnya untuk meng-upgrade dan memverifikasi workload apa pun sesuai kebutuhan hingga verifikasi berhasil.

  1. Lakukan Langkah 1 lagi untuk meng-upgrade lapisan kontrol ke versi canary.

  2. Lakukan Langkah 2 lagi untuk memverifikasi bahwa versi proxy baru yang disuntikkan memenuhi harapan.

    Misalnya, jika Anda redeploy workload tanpa status (stateless) reviews-v1, reviews-v2, dan reviews-v3 dari konsol ACK, pod untuk workload tersebut semuanya akan disuntikkan dengan proxy mesh Sidecar versi 1.23.

Step 6: Verification passed, switch to the official version

Langkah-langkah sebelumnya telah memverifikasi bahwa reviews-v1, reviews-v2, dan reviews-v3 dapat menggunakan proxy mesh versi 1.23 (versi baru) dan fitur-fiturnya berfungsi sesuai harapan. Pada titik ini, Anda dapat mempromosikan versi 1.23 menjadi versi resmi.

Penting
  • Setelah Anda mengalihkan versi, upgrade akan melanjutkan ke tahap unpublish versi lama. Pada titik ini, semua workload harus dialihkan ke proxy mesh Sidecar versi 1.23 yang baru, dan Anda tidak dapat lagi mencabut upgrade tersebut. Pastikan untuk menyelesaikan seluruh pekerjaan verifikasi dalam fase New Version Deployment.

  • Setelah pengalihan versi, namespace dengan label istio.io/rev: stable dan istio-injection: enabled akan disuntikkan dengan proxy mesh Sidecar versi 1.23 yang baru. Label istio.io/rev: canary tidak lagi berlaku. Oleh karena itu, saat mengalihkan versi, ASM secara otomatis mengubah semua label istio.io/rev: canary menjadi istio.io/rev: stable. Anda harus mengonfirmasi hal ini saat mengklik Switch Version pada tab Canary Upgrade di halaman Upgrade Management.

  1. Masuk ke ASM console. Di panel navigasi sebelah kiri, pilih Service Mesh > Mesh Management.

  2. Pada halaman Mesh Management, klik nama instans ASM. Di panel navigasi sebelah kiri, pilih ASM Instance > Upgrade Management.

  3. Pada halaman Upgrade Management, pada tab Canary Upgrade, klik Upgrade Version. Pada kotak dialog Confirm to Switch the Version?, baca prompt dengan cermat. Setelah mengonfirmasi informasi tersebut, klik OK.

    Setelah pengalihan berhasil, proxy mesh versi 1.22 yang ada tetap dipertahankan, dan workload terkait tidak terpengaruh. Namun, semua pod yang diredeploy akan disuntikkan dengan proxy Sidecar versi 1.23. Tampilan halaman setelah pengalihan dan pembaruan ditunjukkan pada gambar berikut.

    Snipaste_2025-10-28_10-10-05

    Gambar berikut menunjukkan status pada titik ini:

Step 7: Upgrade the data plane

Pada titik ini, versi ASM adalah 1.23. Namespace dengan label istio.io/rev=stable, istio.io/rev=1-23-6, atau istio-injection=enabled semuanya disuntikkan dengan proxy mesh Sidecar versi 1.23. Anda dapat melakukan pembaruan bergulir (rolling update) terhadap workload untuk meng-upgrade proxy mesh Sidecar yang disuntikkan ke versi 1.23 yang baru. Hal ini menyelesaikan upgrade bidang data.

  1. Masuk ke ASM console. Di panel navigasi sebelah kiri, pilih Service Mesh > Mesh Management.

  2. Pada halaman Mesh Management, klik nama instans ASM. Di panel navigasi sebelah kiri, pilih ASM Instance > Upgrade Management.

  3. Pada halaman Upgrade Management, pada tab Canary Upgrade, klik tab Data Plane. Anda dapat meng-upgrade gerbang ASM atau workload sesuai kebutuhan.

    • Upgrade gerbang ASM: Di bagian ASM Gateway, temukan gerbang target. Di kolom Actions, klik Rolling Upgrade. Pada kotak dialog Confirm to Perform Rolling Upgrade?, klik OK untuk meng-upgrade gerbang ASM ke versi 1.23 yang baru.

    • Upgrade workload: Di bagian Workloads To Be Upgraded, alihkan Namespace. Kemudian, temukan workload target. Di kolom Actions, klik Rolling Upgrade. Pada kotak dialog Confirm to Perform Rolling Upgrade?, klik OK untuk meng-upgrade workload ke versi 1.23 yang baru.

      数据面升级.png

      Catatan

      Daftar tersebut tidak menampilkan gerbang ASM atau workload yang telah di-upgrade.

      Anda juga dapat mengklik Mesh Status di panel navigasi sebelah kiri untuk melihat workload global atau instans gerbang yang belum di-upgrade.

      Gambar berikut menunjukkan status setelah upgrade bidang data selesai.

Step 8: Unpublish the old version

Setelah semua workload pada bidang data di-upgrade, Anda dapat unpublish versi lama 1.22.

  1. Masuk ke ASM console. Di panel navigasi sebelah kiri, pilih Service Mesh > Mesh Management.

  2. Pada halaman Mesh Management, klik nama instans ASM. Di panel navigasi sebelah kiri, pilih ASM Instance > Upgrade Management.

  3. Pada halaman Upgrade Management, pada tab Canary Upgrade, klik Unpublish Old Version. Pada kotak dialog Confirm to Unpublish the Old Version of the Control Plane?, klik OK.

    Gambar berikut menunjukkan status pada titik ini.