全部產品
Search
文件中心

Enterprise Distributed Application Service:使用控制台金絲雀發布應用(K8s)

更新時間:Dec 27, 2024

對於部署在K8s叢集中的Spring Cloud或Dubbo微服務應用,為確保升級操作的安全性,可使用金絲雀發布(即灰階發布)進行小規模驗證,驗證通過後再全量升級。本文介紹如何使用EDAS控制台進行金絲雀發布K8s應用。

使用限制

  • HSF應用:不支援金絲雀發布。

  • Dubbo應用:無使用限制。

  • Spring Cloud應用:如果應用依賴Deployment.Metadata.Name或Deployment.Metadata.Uid的功能與配置,請勿使用金絲雀發布,否則該原生功能將出現異常。

  • 入口類型應用:如果當前應用為入口類型應用,流量從SLB直接轉寄到當前應用,那麼SLB流量轉寄策略不會遵循此金絲雀發布策略。

    說明

    若您想體驗金絲雀灰階發布,可以使用樣本Demo:先建立一個用戶端應用,再建立多副本的服務端應用,對服務端應用進行灰階發布,並為用戶端應用綁定SLB,通過SLB訪問服務。

操作步驟

  1. 登入EDAS控制台

  2. 在左側導覽列,單擊應用管理 > 應用列表,在頂部功能表列選擇地區,並在頁面上方選擇微服務空間。

  3. 應用列表頁面的叢集類型下拉式清單,選擇K8s叢集,然後單擊目標應用程式名稱

  4. 應用總覽頁面右上方,選擇部署 > 部署,在選擇部署模式頁面,單擊金絲雀發布(灰階)地區右上方的開始部署

  5. 金絲雀發布(灰階)版面設定新版本應用的部署參數、發布策略和灰階規則,然後單擊確定

    1. 設定部署參數。

      配置項

      描述

      適用情境

      應用運行環境

      與上一次部署保持一致。

      • JAR包部署:應用運行環境為标准Java应用运行环境,不可更改。

      • WAR包部署:應用運行環境為Apache Tomcat,類型不可更改。如果需要,可以更換版本。

      適用於JAR包和WAR包部署的應用

      Java環境

      根據需求在下拉式清單選擇對應的JDK版本。

      適用於JAR包和WAR包部署的應用

      檔案上傳方式

      與上一次的部署套件類型(WAR包或JAR包)保持一致,不可更改。

      上傳方式可以根據實際需求選擇上傳部署套件或輸入部署套件地址兩種方式。

      • 上傳JAR包/上傳WAR包:選擇下載好的JAR包/WAR包並上傳。

      • JAR包地址/WAR包地址:輸入Demo包地址。

      適用於JAR包和WAR包部署的應用

      構建倉庫類型

      說明
      • 構建倉庫類型功能僅支援Container ServiceK8s叢集下的Java、 Tomcat、EDAS-container(HSF)三種應用類型。暫不支援ACK Serverless叢集

      • 需要安裝鏡像免密拉取組件,具體操作,請參見使用免密組件拉取容器鏡像

      • 使用您自己的阿里雲鏡像倉庫企業版時,需要自行配置專用網路存取控制。具體操作,請參見配置專用網路的存取控制

      • 應用鏡像構建過程是在您的叢集內進行,並且會使用您的資源進行構建過程。單個構建任務的預設資源限制是1核1 GB。如何調整鏡像構建資源限制,具體操作,請參見如何調整鏡像構建資源限制?

      使用ACR個人版ACR企業版儲存構建後的鏡像時,構建任務會運行在叢集中。構建任務擁有以下調度親和性以及調度容忍策略。

      • 拒絕調度到有edas.image.build=disable標籤的節點。

      • 偏向調度到有edas.image.build=enable標籤的節點,但如果節點沒有edas.image.build標籤,構建任務也可能被調度到。

      • 容忍汙點:key=edas.image.build, effect=NoSchedule

      說明
      • 對於不想要被構建任務調度到的節點,可以添加edas.image.build=disable標籤。

      • 對於構建任務專用節點,可以添加edas.image.build=enable,以及汙點key=edas.image.build, effect=NoSchedule標籤,防止其他Pod被調度到該節點。

      僅適用於鏡像部署的應用

      ACR所屬地區

      選擇您的容器鏡像所在的地區。該參數僅在構建倉庫類型選擇ACR企業版時需要配置。

      Container Registry

      選擇您的Container Registry。該參數僅在構建倉庫類型選擇ACR企業版時需要配置。

      鏡像倉庫命名空間

      在下拉式清單中選擇您的鏡像倉庫所在的微服務空間,也可以單擊單側的+建立命名空間建立新的微服務空間。

      版本

      部署套件版本,可以用時間戳記作為版本號碼。

      適用於JAR包和WAR包部署的應用

      時區

      根據實際需求在列表中選擇。

      適用於JAR包和WAR包部署的應用

      單Pod資源配額

      設定單個Pod的CPU、記憶體和臨時儲存。如果您需要限額,請填寫具體的數字,使用預設值0代表不限額。沒有配額限制,上限取決於叢集效能。

      都適用

    2. 發布策略地區配置發布策略參數。

      配置西

      描述

      首批灰階數量

      首批發布的應用執行個體數量。右側會顯示應用當前執行個體數,為保證應用穩定性,灰階執行個體數不能超過應用執行個體總數的50%。

      說明

      灰階分組發布後,必須手動開始剩餘分批發布。

      剩餘批次

      首批灰階發布後,剩餘的應用執行個體按照該處設定的批次完成分批發布。

      分批間處理方式

      說明

      僅當剩餘批次大於1時,需配置分批間處理方式

      支援以下處理方式:

      • 自動:根據間隔自動分配分批發布。間隔為剩餘批次間的發布時間間隔,單位:分鐘。

      • 手動:手動觸發下一個批次的發布。

      批次內部署間隔

      每一批次內,如果應用執行個體數大於1,應用執行個體按該時間間隔部署,單位:秒。

      右側發布策略配置資訊地區根據配置顯示金絲雀發布流程。

    3. 設定灰階規則。

      EDAS支援的灰階規則包括按內容灰階按比例灰階

      灰階規則

      配置項

      說明

      按內容灰階

      1. 單擊添加策略,在新增內容灰階策略面板配置策略名稱稱及流量規則後,單擊確定

      2. 選擇策略下拉式清單選擇建立的內容灰階策略。

      說明

      單擊建立流量規則,可建立多個入口流量規則,多個規則可同時生效。

      策略名稱稱

      自訂內容灰階策略名稱稱。

      協議類型

      • Spring Cloud

        path:HTTP相對路徑。

      • Dubbo

        • 選擇服務:在下拉式清單選擇已建立的服務。

        • 方法:在下拉式清單選擇服務的方法。

      條件模式

      選擇同時滿足下列條件滿足下列任一條件

      條件列表

      • Spring Cloud:根據CookieHeaderParameter類型設定具體的參數。

      • Dubbo:根據應用實際的參數參數值擷取運算式設定。

      按比例灰階

      流量比例

      流量按配置的比例被轉寄到當前的灰階分組。

      按泳道灰階

      1. 單擊添加策略,在添加泳道灰階策略面板配置策略名稱稱及流量規則後,單擊確定

      2. 選擇策略下拉式清單選擇建立的泳道灰階策略。

      策略名稱稱

      自訂泳道灰階策略名稱稱。

      泳道組

      選擇已建立的泳道組。更多資訊,請參見建立泳道組

      泳道

      選擇已建立的泳道。更多資訊,請參見建立泳道

    金絲雀發布啟動後,EDAS將先在指定的灰階分組中部署新版本應用。您可在變更記錄頁面查看部署進度和狀態。

  6. 灰階流量驗證完成後,在變更記錄頁面右側,單擊開始下一批,完成後續分批發布。

    如果在驗證過程中發現新版本應用有問題,可在變更記錄頁面右上方,單擊立即復原,在彈出的確認對話方塊,單擊確定

    金絲雀發布完成後,在應用總覽頁面的部署規格地區,查看部署套件是否為新部署的應用版本。