日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

ASM網關灰度升級

ASM網關支持灰度升級,能夠提供流暢的升級體驗。本文以ASM原地升級為例,介紹如何使用ASM網關的灰度升級功能。

前提條件

背景信息

網關作為業務的流量總入口和總出口,對可用性有著極高的要求。為了更好地保證升級后業務的連續性,ASM網關支持灰度升級。您可以通過配置先啟動一個新版本的網關Pod來驗證流量,驗證通過后再完全升級網關。驗證過程中如果出現任何問題,您可以隨時刪除這個新版本的Pod,問題解決后再繼續升級。

說明

ASM網關的灰度升級與ASM的金絲雀升級并不相同。無論您使用ASM的原地升級還是金絲雀升級,ASM網關的灰度升級均可以使用。

網關灰度升級介紹

ASM的控制面升級和數據面升級是分離的,您可以在控制面升級完成后再升級數據面。網關灰度升級的原理如下:

創建一個與當前控制面版本對應的網關單副本Deployment,這個Deployment被稱為Canary Deployment。它和網關原本的Deployment同時屬于一個Service,不同點是這個Deployment后面會加上-canary的后綴。

重要

如果網關命名空間中原本存在帶了-canary后綴的同名Deployment,此時不會覆蓋該Deployment。使用該功能前,請確保不存在帶-canary后綴的同名Deployment。例如,如果網關名稱為ingressgateway,請確保istio-system命名空間下沒有名稱為istio-ingressgateway-canary的Deployment。

  • ASM原地升級

    控制面升級完成后,此時網關還是舊版本。您可以先創建Canary Deployment。Canary Deployment就緒后,部分流量就會被分配到這個灰度副本。此時觀察灰度副本上的流量是否正常。如果不正常,保留現場日志,刪除灰度副本。解決問題后重新部署灰度副本進行驗證。驗證無誤之后,將網關升級至新版本。

  • ASM金絲雀升級

    網關的灰度升級同樣支持在ASM金絲雀升級中使用。在ASM金絲雀升級過程中,將新版本切換為默認控制面之后,此時網關處于待升級狀態。您可以部署網關的灰度副本進行驗證,驗證無誤后升級網關。

    網關升級到新版本之后,您可以通過配置刪除部署的灰度副本。

步驟一:升級控制面

為了盡量在升級過程中降低流量損失的風險,請在升級前開啟網關的優雅下線功能。具體操作,請參見使用優雅下線功能避免流量損失

  1. 登錄ASM控制臺,在左側導航欄,選擇服務網格 > 網格管理

  2. 網格管理頁面,單擊目標實例名稱,然后在左側導航欄,選擇網格實例 > 升級管理

  3. 升級管理頁面的原地升級頁簽,單擊運行檢查,在重要提示對話框,單擊確定

    說明

    若頁面顯示當前已為最新版本,無需升級,表明網格是最新版本,無法進行升級操作。

  4. 升級預檢查通過后,單擊開始升級,在重要提示對話框,單擊確定

步驟二:部署ASM網關的灰度副本

ASM網關的灰度副本通過Annotation開啟。

  1. 在ASM網關的YAML中添加asm.alibabacloud.com/enable-canary-deployment: "true"的Annotation,部署一個灰度副本。

    方式一:通過ASM控制臺

    1. 登錄ASM控制臺,在左側導航欄,選擇服務網格 > 網格管理

    2. 網格管理頁面,單擊目標實例名稱,然后在左側導航欄,選擇ASM網關 > 入口網關

    3. 入口網關頁面,單擊目標網關右側的查看YAML,在編輯對話框,將asm.alibabacloud.com/enable-canary-deployment: "true"注解添加到metadata字段下的annotations中,然后單擊確定

    方式二:通過kubectl命令

    1. 執行以下命令,打開ASM網關的YAML文件。

      kubectl edit IstioGateway <YOUR-INGRESSGATEWAY-NAME> -n istio-system
    2. 編輯YAML文件,將asm.alibabacloud.com/enable-canary-deployment: "true"注解添加到metadata字段下的annotations中,然后進行保存。

    展開查看添加Annotation的YAML示例

    apiVersion: istio.alibabacloud.com/v1beta1
    kind: IstioGateway
    metadata:
      labels:
        asm-gateway-type: ingress
      annotations:
        asm.alibabacloud.com/enable-canary-deployment: "true"  # 添加此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
  2. 使用數據面KubeConfig,執行以下命令,查看部署的灰度副本。

    本示例網關名稱為ingressgateway,請您根據實際情況進行替換。

    kubectl -n istio-system get deployment | grep ingressgateway

    預期輸出:

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

    帶有-canary后綴的Deployment即為灰度副本。

    灰度副本就緒后,會有部分流量進入對應的Pod,此時請觀察到達該網關的流量是否正常。如果出現異常,請保留網關日志,刪除配置的Annotation。該灰度副本會被刪除,所有流量將全部流向舊版本網關副本。問題解決后,重新部署灰度副本進行驗證。

步驟三:驗證無誤后,升級網關

  1. 登錄ASM控制臺,在左側導航欄,選擇服務網格 > 網格管理

  2. 網格管理頁面,單擊目標實例名稱,然后在左側導航欄,選擇網格實例 > 升級管理

  3. 數據平面區域的升級列,選中目標網關,單擊升級網關,在重要提示對話框,單擊確定,等待網關升級完成。

步驟四:刪除灰度副本

網關升級完成后,刪除步驟二中增加的Annotation,灰度副本會被自動刪除。

重要

灰度副本永遠跟隨控制面的版本,如果不刪除,灰度副本會在下次升級控制面時同步升級。