Tüm Ürünler
Search
Belge Merkezi

Alibaba Cloud Service Mesh:ASM ağ geçidi için Canary yükseltme

Son Güncelleme:Oct 07, 2026

ASM ağ geçitleri, sorunsuz bir yükseltme deneyimi için canary yükseltmeyi destekler. Bu konu, tüm ağ geçidi pod'ları yükseltilmeden önce trafiği doğrulamanıza olanak tanımak amacıyla yeni sürümde tek bir pod'un nasıl başlatıldığını göstermek için bir ASM örneğinin yerinde yükseltmesini örnek alır.

Önkoşullar

  • ASM örneği ve sürümü — Bir kümeyi bir ASM örneğine eklediğinizden ve ASM sürümünün 1.20 veya üzeri olduğundan emin olun. Bir ASM örneğini yükseltme talimatları için bkz. Bir ASM örneğini yükseltme.

  • Giriş ağ geçidi — Bir giriş ağ geçidi oluşturduğunuzu doğrulayın.

  • Korumalı kapatma — Yükseltmeyi yapmadan önce ağ geçidi için korumalı kapatmayı etkinleştirin. Bu işlem, yükseltme sırasında trafik kaybı riskini en aza indirir. Talimatlar için bkz. Trafik kaybını önlemek için korumalı kapatmayı etkinleştirme.

  • Canary Dağıtımı ile ad çakışması olmaması — Ağ geçidinin ad alanında, ağ geçidi Dağıtımının adına -canary soneki eklenmiş adla aynı ada sahip bir Dağıtım bulunmadığından emin olun. Örneğin, ağ geçidi ingressgateway olarak adlandırılmışsa, istio-system ad alanında istio-ingressgateway-canary adında bir Dağıtım olmadığından emin olun.

  • Veri düzlemi erişimi — Veri düzlemi kümesine karşı kubectl komutlarını çalıştırabilmeniz için veri düzleminin KubeConfig dosyasını edinin.

Bir ağ geçidi canary yükseltmesinin çalışma şekli

Hizmet trafiği için tek giriş ve çıkış noktası olan bir ağ geçidi, sıkı kullanılabilirlik gereksinimlerini karşılamalıdır. Canary yükseltme, iş sürekliliğini korumanıza yardımcı olur. Ağ geçidi yapılandırmasını değiştirerek öncelikle yeni sürümü çalıştıran bir ağ geçidi pod'u başlatır ve bu pod üzerindeki trafiği doğrularsınız. Ağ geçidi, yalnızca doğrulama başarılı olduktan sonra tamamen yükseltilir. Doğrulama sırasında herhangi bir sorun oluşursa, bu yeni pod'u istediğiniz zaman silebilir ve sorunu çözdükten sonra yükseltmeye devam edebilirsiniz.

Not

Bir ASM ağ geçidinin canary yükseltmesi, bir ASM örneğinin canary yükseltmesiyle aynı değildir. ASM örneğinde yerinde yükseltme mi yoksa canary yükseltme mi yaptığınızdan bağımsız olarak ASM ağ geçidinin canary yükseltmesi kullanılabilir.

ASM'de kontrol düzlemi yükseltmesi ve veri düzlemi yükseltmesi ayrı işlemlerdir. Veri düzlemi, kontrol düzlemi yükseltmesi tamamlandıktan sonra yükseltilebilir.

Bir ağ geçidi canary yükseltmesi, geçerli kontrol düzlemi sürümüyle eşleşen tek çoğaltmalı bir Dağıtım oluşturur. Bu Dağıtım Canary Dağıtımı olarak adlandırılır ve yönettiği tek pod canary pod'udur. Canary Dağıtımı, ağ geçidinin orijinal Dağıtımıyla aynı Hizmet'e aittir. Farklı olarak, adı orijinal Dağıtımın adına -canary sonekinin eklenmesiyle oluşur.

Önemli

Ağ geçidinin ad alanında aynı ada ve -canary sonekine sahip bir Dağıtım zaten varsa, bu Dağıtımın üzerine yazılmaz.

Aşağıdaki her iki ASM örneği yükseltme yolu da ağ geçidi canary yükseltmesini destekler. Başlamadan önce yolunuzu belirleyin:

  • Bir ASM örneğinin yerinde yükseltmesi — Kontrol düzlemi yükseltmesi tamamlandıktan sonra ağ geçidi hala önceki sürümü çalıştırır. Bu konudaki 1. Adımı 4. Adıma kadar uygulayın.

  • Bir ASM örneğinin canary yükseltmesi — Bu konudaki 1. Adım uygulanmaz. Bir ASM örneğinin canary yükseltmesi sırasında, yeni sürümü varsayılan kontrol düzlemine geçirdikten sonra ağ geçidi yükseltme bekliyor durumundadır. Ağ geçidi için bir canary pod'u dağıtmak, trafiği doğrulamak ve doğrulama başarılı olduktan sonra ağ geçidini yükseltmek için 2. Adımdan devam edin.

1. Adım: Kontrol düzlemini yükseltme

  1. ASM konsoluna giriş yapın. Sol gezinme bölmesinde Service Mesh > Mesh Management seçeneğini belirleyin.

  2. Mesh Management sayfasında ASM örneğinin adını tıklayın. Sol gezinme bölmesinde Instance Information > Upgrade Management seçeneğini belirleyin.

  3. Upgrade Management sayfasında, In-place Upgrades sekmesinde Perform Upgrade Precheck öğesini tıklayın. Note iletişim kutusunda OK öğesini tıklayın.

    Not

    Sayfa Currently, it is the latest version and does not need to be upgraded. mesajını görüntülerse, hizmet kafesi zaten en son sürümdedir ve yükseltilemez.

  4. Yükseltme ön denetimi başarılı olduktan sonra Upgrade öğesini tıklayın. Note iletişim kutusunda OK öğesini tıklayın.

2. Adım: ASM ağ geçidi için bir canary pod'u dağıtma

Bir ASM ağ geçidi için canary pod'u dağıtmak üzere, ASM ağ geçidinin YAML dosyasındaki metadata alanı altındaki annotations bölümüne asm.alibabacloud.com/enable-canary-deployment: "true" açıklamasını ekleyin. Bunun için ASM konsolunu veya kubectl komut satırını kullanabilirsiniz.

Yöntem 1: ASM konsolunu kullanma

  1. ASM konsoluna giriş yapın. Sol gezinme bölmesinde Service Mesh > Mesh Management seçeneğini belirleyin.

  2. Mesh Management sayfasında ASM örneğinin adını tıklayın. Sol gezinme bölmesinde ASM Gateways > Ingress Gateway seçeneğini belirleyin.

  3. Ingress Gateway sayfasında, hedef ağ geçidinin sağındaki View YAML seçeneğini tıklayın. Edit iletişim kutusunda açıklamayı ekleyin ve ardından OK öğesini tıklayın.

Yöntem 2: kubectl komutunu kullanma

  1. ASM ağ geçidinin YAML dosyasını açmak için aşağıdaki komutu çalıştırın.

    kubectl edit IstioGateway <YOUR-INGRESSGATEWAY-NAME> -n istio-system
  2. Açıklamayı eklemek için YAML dosyasını düzenleyin ve ardından dosyayı kaydedin.

Aşağıdaki örnek YAML dosyası, açıklamanın eklendiği bir ASM ağ geçidi yapılandırmasını göstermektedir. Sonuç, her iki yöntem için de aynıdır.

apiVersion: istio.alibabacloud.com/v1beta1
kind: IstioGateway
metadata:
  labels:
    asm-gateway-type: ingress
  annotations:
    asm.alibabacloud.com/enable-canary-deployment: "true"  # Add this annotation.
  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

Canary pod'unu ve trafiğini doğrulama

Açıklamayı eklemek için kullandığınız yöntemden bağımsız olarak aşağıdaki adımları uygulayın.

  1. Dağıtılan Canary Dağıtımını görüntülemek için veri düzleminin KubeConfig dosyasını kullanarak aşağıdaki komutu çalıştırın. Bu örnekte ağ geçidi adı ingressgateway olarak verilmiştir. Kendi senaryonuza göre bunu değiştirin.

    kubectl -n istio-system get deployment | grep ingressgateway

    Beklenen çıktı:

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

    -canary sonekine sahip Dağıtım, Canary Dağıtımıdır. Hazır çoğaltmalarının yukarıdaki çıktıda gösterildiği gibi 1/1 değerine ulaşmasını bekleyin.

  2. Canary pod'u hazır hale geldikten sonra, trafiğin bir kısmı canary pod'una yönlendirilir. Ağ geçidine ulaşan trafiğin normal olup olmadığını kontrol edin.

    Trafik normal ise ağ geçidini yükseltmek için 3. Adımla devam edin. Trafik anormal ise aşağıdaki bölümde açıklandığı şekilde canary pod'unu geri alın.

Doğrulama başarısız olursa geri alma

Ağ geçidine ulaşan trafik anormal ise aşağıdaki adımları uygulayın:

  1. Ağ geçidi günlüklerini kaydedin.

  2. Yapılandırdığınız asm.alibabacloud.com/enable-canary-deployment: "true" açıklamasını silin. Canary pod'u silinir ve tüm trafik önceki sürümü çalıştıran ağ geçidi pod'larına yönlendirilir.

  3. Sorunu çözdükten sonra canary pod'unu yeniden dağıtmak için açıklamayı tekrar ekleyin ve ardından trafiği yeniden doğrulayın.

3. Adım: Doğrulama başarılı olduktan sonra ağ geçidini yükseltme

  1. ASM konsoluna giriş yapın. Sol gezinme bölmesinde Service Mesh > Mesh Management seçeneğini belirleyin.

  2. Mesh Management sayfasında ASM örneğinin adını tıklayın. Sol gezinme bölmesinde Instance Information > Upgrade Management seçeneğini belirleyin.

  3. Data Plane bölümünde, Upgrade sütununda hedef ağ geçidini seçin ve Upgrade Gateway öğesini tıklayın. Note iletişim kutusunda OK öğesini tıklayın ve ağ geçidi yükseltmesinin tamamlanmasını bekleyin.

4. Adım: Canary pod'unu silme

Ağ geçidi yükseltmesi tamamlandıktan sonra, 2. Adımda eklediğiniz açıklamayı silin. Canary pod'u otomatik olarak silinir. Sonucu onaylamak için ağ geçidinin ad alanındaki Dağıtımları tekrar görüntüleyin ve -canary sonekine sahip Dağıtımın artık mevcut olmadığını kontrol edin.

Önemli

Canary pod'u her zaman kontrol düzleminin sürümünü takip eder. Silmezseniz, kontrol düzlemini bir sonraki yükseltişinizde canary pod'u da kontrol düzlemiyle birlikte yükseltilir.