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

自建Istio IngressGateway如何遷移至ASM網關

本文介紹自建Istio IngressGateway如何遷移至ASM網關。

方案示意圖

遷移方案

步驟一:在ASM實例中創建入口網關

關于創建入口網關的具體操作,請參見創建入口網關

創建入口網關時,請注意以下幾點:

  • 命名ASM網關時,請不要與已有網關重名。您可以在命名時加上-asm后綴,與已有網關進行區分,例如命名為ingressgateway-asm。

  • 創建入口網關步驟3,選擇部署集群為原有的Istio ingressGateway所在的Kubernetes集群。

  • 將域名解析更改為新的ASM Gateway地址。若不能切換域名對應的DNS解析,或需要通過權重方式漸進地遷移流量,遷移時新建的ASM網關需要復用原有網關的CLB實例(如上圖所示,右側的ASM網關采用復用原有網關的CLB實例方式)。

    說明

    通過Service Loadbalancer類型聲明創建的CLB復用請參考本文FAQ。

展開查看ASM網關復用已有CLB的相關說明。

在ASM實例下采用IstioGateway YAML方式創建ASM網關時,若需要復用已有的CLB,請注意以下幾點:

  • 編輯ASM網關對應的IstioGateway YAML,在serviceAnnotations下設置CLB相關配置。

  • 復用要遷移的Istio ingressGateway已有的CLB實例,對應Annotation為service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id

  • 設置不覆蓋CLB已有監聽,對應Annotation為service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners: 'false'

  • 復用CLB已有的虛擬服務器組時,如果service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vgroup-port有多個端口及虛擬服務器組的組合,可以使用英文半角逗號(,)分隔,例如"${YOUR_VGROUP_ID_1}:80, ${YOUR_VGROUP_ID_2}:443"

  • 確認CLB的負載均衡調度算法已調整為WRR(加權輪詢)。根據實際需求,調整ASM網關實例在CLB下的權重。將權重設置為0,表示CLB不會轉發流量,可用于前期ASM網關下對應路由配置還未Ready的情況,或者遭遇異常的情況進行摘流。

serviceAnnotations YAML示例如下:

serviceAnnotations:
  service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id: "lb-xxxxx"  //lb-xxxxx請替換為您通過負載均衡管理控制臺創建的CLB實例ID。
  service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners: 'false'  //需要設置為false, 因為IstioGateway默認是覆蓋監聽的方式。
  service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vgroup-port: "${YOUR_VGROUP_ID}:80"   //${YOUR_VGROUP_ID}請替換為您的虛擬服務器。
  service.beta.kubernetes.io/alibaba-cloud-loadbalancer-weight: "60"   //設置Service流量權重,設置為0,表示不再接受流量。

步驟二:遷移相關配置

  • 遷移Gateway時,selcetor.istio需修改為實際的ASM網關名稱。YAML示例如下:

    spec:
      selector:
        istio: ingressgateway-asm
  • VirtualService、DestinationRule等其他配置直接遷移即可。

步驟三:遷移流量

通過修改serviceAnnotations,可以切換新舊兩個網關的權重。對應ASM網關實例的權重可以先設置為較小值(例如10%),觀察一段時間的線上請求是否符合預期,然后逐步增加ASM網關實例的權重,直到全部切換到ASM網關。

權重調整方式如下:

  • 修改原Istio ingressGateway的權重:在對應Service中添加Annotation,例如service.beta.kubernetes.io/alibaba-cloud-loadbalancer-weight: "90"

  • 修改ASM網關的實例的權重:在對應istiogateway下添加serviceAnnotaions,例如service.beta.kubernetes.io/alibaba-cloud-loadbalancer-weight: "10"

FAQ:如果自建網關的CLB是跟隨Service自動創建的,如何更改為復用CLB?

  1. 前往CLB控制臺,找到相關的CLB實例。刪除對應CLB上的這兩個特殊標簽:kubernetes.do.not.deleteack.aliyun.com

  2. 給對應的網關Service添加如下Annotation:

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners: "false"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id: ${對應CLB id}
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vgroup-port: ${虛擬服務器組ID}:${端口}
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-weight: "100"