All Products
Search
Document Center

Alibaba Cloud Service Mesh:Peningkatan canary untuk gerbang ASM

Last Updated:Aug 28, 2026

Gerbang ASM mendukung peningkatan canary untuk pengalaman peningkatan yang mulus. Topik ini menggunakan contoh peningkatan in-place instans ASM untuk menunjukkan cara menjalankan satu Pod pada versi baru sehingga Anda dapat memverifikasi traffic sebelum semua Pod gerbang ditingkatkan.

Prasyarat

  • Instans dan versi ASM — Pastikan Anda telah menambahkan kluster ke instans ASM, dan versi ASM adalah 1.20 atau lebih baru. Untuk petunjuk peningkatan instans ASM, lihat Upgrade an ASM instance.

  • Gerbang masuk — Pastikan Anda telah membuat ingress gateway.

  • Shutdown yang mulus — Aktifkan graceful shutdown untuk gerbang sebelum melakukan peningkatan guna meminimalkan risiko kehilangan traffic selama proses tersebut. Untuk petunjuknya, lihat Enable graceful shutdown to prevent traffic loss.

  • Tidak ada konflik nama dengan Canary Deployment — Pastikan tidak ada Deployment di namespace gerbang yang namanya sama dengan nama Deployment gerbang ditambah akhiran -canary. Misalnya, jika gerbang bernama ingressgateway, pastikan tidak ada Deployment bernama istio-ingressgateway-canary di namespace istio-system.

  • Akses bidang data — Dapatkan file KubeConfig bidang data agar Anda dapat menjalankan perintah kubectl terhadap kluster bidang data.

Cara kerja peningkatan canary gerbang

Sebagai titik masuk dan keluar tunggal untuk service traffic, gerbang harus memenuhi persyaratan ketersediaan yang ketat. Peningkatan canary membantu Anda menjaga kelangsungan bisnis. Anda mengubah konfigurasi gerbang untuk pertama kali menjalankan Pod gerbang yang menggunakan versi baru dan memverifikasi traffic pada Pod tersebut. Gerbang hanya akan sepenuhnya ditingkatkan setelah verifikasi berhasil. Jika terjadi masalah selama verifikasi, Anda dapat menghapus Pod baru ini kapan saja, lalu melanjutkan peningkatan setelah masalah terselesaikan.

Catatan

Peningkatan canary gerbang ASM berbeda dengan peningkatan canary instans ASM. Peningkatan canary gerbang ASM tersedia terlepas dari apakah Anda melakukan peningkatan in-place atau peningkatan canary pada instans ASM.

Di ASM, peningkatan lapisan kontrol dan peningkatan bidang data dilakukan secara terpisah. Bidang data dapat ditingkatkan setelah peningkatan lapisan kontrol selesai.

Peningkatan canary gerbang membuat Deployment dengan replika tunggal yang sesuai dengan versi lapisan kontrol saat ini. Deployment ini disebut Canary Deployment, dan satu-satunya Pod yang dikelolanya adalah canary pod. Canary Deployment termasuk dalam Service yang sama dengan Deployment asli gerbang. Perbedaannya adalah nama Canary Deployment merupakan nama Deployment asli ditambah akhiran -canary.

Penting

Jika Deployment dengan nama yang sama dan akhiran -canary sudah ada di namespace gerbang, Deployment tersebut tidak akan ditimpa.

Kedua jalur peningkatan instans ASM berikut mendukung peningkatan canary gerbang. Identifikasi jalur Anda sebelum memulai:

  • Peningkatan in-place instans ASM — Setelah peningkatan lapisan kontrol selesai, gerbang masih menjalankan versi sebelumnya. Lakukan Langkah 1 hingga Langkah 4 dalam topik ini.

  • Peningkatan canary instans ASM — Langkah 1 dalam topik ini tidak berlaku. Selama peningkatan canary instans ASM, setelah Anda mengalihkan versi baru sebagai lapisan kontrol default, gerbang menunggu untuk ditingkatkan. Lanjutkan dari Langkah 2 untuk men-deploy canary pod untuk gerbang, verifikasi traffic, lalu tingkatkan gerbang setelah verifikasi berhasil.

Langkah 1: Tingkatkan lapisan kontrol

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

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

  3. Di halaman Upgrade Management, pada tab In-place Upgrades, klik Perform Upgrade Precheck. Di kotak dialog Note, klik OK.

    Catatan

    Jika halaman menampilkan Currently, it is the latest version and does not need to be upgraded., mesh layanan sudah menggunakan versi terbaru dan tidak dapat ditingkatkan.

  4. Setelah pemeriksaan awal peningkatan berhasil, klik Upgrade. Di kotak dialog Note, klik OK.

Langkah 2: Deploy canary pod untuk gerbang ASM

Untuk men-deploy canary pod untuk gerbang ASM, tambahkan anotasi asm.alibabacloud.com/enable-canary-deployment: "true" ke bagian annotations di bawah bidang metadata dalam file YAML gerbang ASM. Gunakan Konsol ASM atau baris perintah kubectl.

Metode 1: Gunakan Konsol ASM

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

  2. Di halaman Mesh Management, klik nama instans ASM. Di panel navigasi kiri, pilih ASM Gateways > Ingress Gateway.

  3. Di halaman Ingress Gateway, klik View YAML di sebelah kanan gerbang target. Di kotak dialog Edit, tambahkan anotasi tersebut, lalu klik OK.

Metode 2: Gunakan perintah kubectl

  1. Jalankan perintah berikut untuk membuka file YAML gerbang ASM.

    kubectl edit IstioGateway <YOUR-INGRESSGATEWAY-NAME> -n istio-system
  2. Edit file YAML untuk menambahkan anotasi, lalu simpan file tersebut.

Contoh file YAML berikut menunjukkan konfigurasi gerbang ASM dengan anotasi yang telah ditambahkan. Hasilnya sama untuk kedua metode.

apiVersion: istio.alibabacloud.com/v1beta1
kind: IstioGateway
metadata:
  labels:
    asm-gateway-type: ingress
  annotations:
    asm.alibabacloud.com/enable-canary-deployment: "true"  # Tambahkan anotasi ini.
  name: ingressgateway
  namespace: istio-system
spec:
  clusterIds:
    - xxxxxxxxxxxxxx
  disableContainerPortExposed: true
  dnsPolicy: ClusterFirst
  externalTrafficPolicy: Local
  gatewayType: ingress
  ports:
    - name: http-0
      port: 80
      protocol: HTTP
      targetPort: 80
  replicaCount: 1
  resources:
    limits:
      cpu: '2'
      memory: 4G
    requests:
      cpu: 200m
      memory: 256Mi
  rollingMaxSurge: 25%
  rollingMaxUnavailable: 25%
  serviceAnnotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-connection-drain: 'on'
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-connection-drain-timeout: '10'
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-instance-charge-type: PayByCLCU
    service.beta.kubernetes.io/alicloud-loadbalancer-address-type: internet
  serviceType: LoadBalancer

Verifikasi canary pod dan traffic-nya

Lakukan langkah-langkah berikut terlepas dari metode yang Anda gunakan untuk menambahkan anotasi.

  1. Gunakan file KubeConfig bidang data untuk menjalankan perintah berikut guna melihat Canary Deployment yang telah dideploy. Dalam contoh ini, nama gerbang adalah ingressgateway. Gantilah sesuai skenario aktual Anda.

    kubectl -n istio-system get deployment | grep ingressgateway

    Output yang diharapkan:

    istio-ingressgateway                1/1     1            1           10m
    istio-ingressgateway-canary         1/1     1            1           55s

    Deployment dengan akhiran -canary adalah Canary Deployment. Tunggu hingga jumlah replika siap mencapai 1/1, seperti yang ditunjukkan pada output di atas.

  2. Setelah canary pod siap, sebagian traffic akan diarahkan ke canary pod tersebut. Periksa apakah traffic yang mencapai gerbang berjalan normal.

    Jika traffic normal, lanjutkan ke Langkah 3 untuk meningkatkan gerbang. Jika traffic tidak normal, kembalikan canary pod seperti yang dijelaskan pada bagian berikut.

Kembalikan jika verifikasi gagal

Jika traffic yang mencapai gerbang tidak normal, lakukan langkah-langkah berikut:

  1. Simpan log gerbang.

  2. Hapus anotasi asm.alibabacloud.com/enable-canary-deployment: "true" yang telah Anda konfigurasi. Canary pod akan dihapus, dan seluruh traffic akan diarahkan kembali ke Pod gerbang yang menjalankan versi sebelumnya.

  3. Setelah Anda menyelesaikan masalah tersebut, tambahkan kembali anotasi untuk menerapkan ulang canary pod, lalu verifikasi traffic sekali lagi.

Langkah 3: Tingkatkan gerbang setelah verifikasi berhasil

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

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

  3. Di bagian Data Plane, pada kolom Upgrade, pilih gerbang target lalu klik Upgrade Gateway. Di kotak dialog Note, klik OK dan tunggu hingga peningkatan gerbang selesai.

Langkah 4: Hapus canary pod

Setelah peningkatan gerbang selesai, hapus anotasi yang Anda tambahkan di Langkah 2. Canary pod akan dihapus secara otomatis. Untuk memastikan hasilnya, tampilkan kembali Deployment di namespace gerbang dan pastikan Deployment dengan akhiran -canary sudah tidak ada.

Penting

Canary pod selalu mengikuti versi lapisan kontrol. Jika Anda tidak menghapusnya, canary pod akan ditingkatkan bersama lapisan kontrol saat Anda melakukan peningkatan lapisan kontrol berikutnya.