應用規模較大或服務架構比較複雜,可以按批次進行部署。每次僅對應用的一部分執行個體進行升級,直至全量升級完成。本文介紹如何使用EDAS控制台分批發布應用。
分批發布簡介
分批發布是按照一定的批次,每次只對應用的一部分執行個體進行升級的發布過程。分批發布過程中如果出現故障,您可以終止變更過程並進行復原,待問題修複後重新發布。
在K8s叢集中,當一個應用進行分批發布時,是將該應用內的應用執行個體數均分到每一個批次進行部署,如果不能均分則批次靠前數量較小,批次靠後數量較大。
情境示意
現有一個應用程式套件含10個應用執行個體,每個應用執行個體的部署版本為Ver.1版本,現需將每個應用執行個體升級為Ver.2版本。
假設將所有應用執行個體分3批進行部署,根據分批發布的策略,該發布的流程示意圖如下:
使用須知
在K8s叢集中,應用使用分批發布時會建立Deployment進行部署。
操作步驟
登入EDAS控制台。
在左側導覽列,單擊 ,在頂部功能表列選擇地區,並在頁面上方選擇微服務空間,然後在應用列表頁面單擊具體的應用程式名稱。
在應用總覽頁面右上方,選擇 。
在選擇部署模式頁面分批發布地區,單擊開始部署。
在分批發布頁面上傳應用新版本的部署套件。
配置項
描述
應用運行環境
預設標準Java應用運行環境。
Java環境
選擇Open JDK 8 [最新版本:1.8.0_191]、Open JDK 7、Open JDK 17、Open JDK 11、JDK 8、JDK 7或Dragonwell 8、Dragonwell 17、Dragonwell 11。
當前環境
顯示當前應用的運行環境。僅是JAR包和WAR包部署的應用,才會顯示當前應用的運行環境。EDAS會自動將您應用的Java環境或應用運行環境升級到最新版本。
檔案上傳方式
可選擇上傳JAR包或JAR包地址兩種方式進行上傳。
說明檔案上傳方式需要和上一次部署的方式一致,包含JAR包、WAR包或鏡像,本文以JAR包為例。
上傳JAR包
檔案上傳方式選擇上傳JAR包時,單擊點擊上傳,上傳JAR包。
JAR包地址
檔案上傳方式選擇JAR包地址時,輸入JAR包地址。
說明對於帶認證簽名的OSS檔案訪問URL,EDAS在部署時會緩衝該檔案用於之後的復原、擴容等操作。
構建倉庫類型
說明構建倉庫類型功能僅支援Container ServiceK8s叢集下的Java、 Tomcat、EDAS-container(HSF)三種應用類型。暫不支援ASK叢集。
需要安裝鏡像免密拉取組件,具體操作,請參見使用免密組件拉取容器鏡像。
使用您自己的阿里雲鏡像倉庫企業版時,需要自行配置專用網路存取控制。具體操作,請參見配置專用網路的存取控制。
應用鏡像構建過程是在您的叢集內進行,並且會使用您的資源進行構建過程。單個構建任務的預設資源限制是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版本,也可單擊右側的用時間戳記作為版本號碼,自動產生相應的時間戳記。
時區
參考指定地區對應的UTC時區。
單Pod資源配額
設定單個Pod的CPU、記憶體和臨時儲存,如果您需要限額,請填寫具體的數字,使用預設值0則代表不限額。沒有配額限制,上限取決於叢集效能。
設定發布策略。
配置項
描述
發布批次
應用執行個體按照設定的批次完成分批發布。
分批間處理方式
說明僅發布批次大於1時,才會顯示分批間處理方式。
包含自動和手動兩種方式。
自動:根據間隔自動分批發布。間隔即剩餘批次間的發布時間間隔,單位為min。
手動:手動觸發下一個批次的發布。
批次內部署間隔
如果應用執行個體數大於1,應用執行個體間的部署時間間隔,單位為秒。
可選:根據您的實際需求,選擇是否需要配置調度規則、啟動命令、環境變數、持久化儲存、本機存放區、應用生命週期管理和日誌收集設定等進階配置。更多資訊,請參見進階配置。
設定完成後,單擊確定。
結果驗證
在應用的變更記錄頁面,查看分批發布的狀態,以及描述資訊中的版本,待所有批次都執行成功,且版本已變為Ver.2時,說明分批發布成功。
復原應用
在分批發布期間,只要至少有一個應用執行個體未升級為新版本,就認為發布處於執行中狀態。在應用升級時,如果第一批升級的應用執行個體停止回應,您可以進入應用變更記錄頁面,單擊復原,將發行的執行個體復原到以前的服務包和配置。
在分批發布時,可能會遇到異常。如何排查並解決異常,請參見變更流程問題排查指南。
部署套件不可用、健全狀態檢查失敗等異常報錯會導致應用升級失敗,當前應用變更會自動終止並復原。
升級時單批次最大逾時時間為30分鐘,如果是逾時導致變更流程暫停,您需進入變更記錄頁面手動終止發布流程並復原。