應用規模較大或服務架構比較復雜,可以按批次進行部署。每次僅對應用的一部分實例進行升級,直至全量升級完成。本文介紹如何使用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在部署時會緩存該文件用于之后的回滾、擴容等操作。
構建倉庫類型
說明- 構建倉庫類型功能僅支持容器服務K8s集群下的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企業版時需要配置。
容器鏡像服務
選擇您的容器鏡像服務。該參數僅在構建倉庫類型選擇ACR企業版時需要配置。
鏡像倉庫命名空間
在下拉列表中選擇您的鏡像倉庫所在的微服務空間,也可以單擊單側的+創建命名空間創建新的微服務空間。
版本
輸入JAR版本,也可單擊右側的用時間戳作為版本號,自動生成相應的時間戳。
時區
參考指定地域對應的UTC時區。
單Pod資源配額
設置單個Pod的CPU、內存和臨時存儲,如果您需要限額,請填寫具體的數字,使用默認值0則代表不限額。沒有配額限制,上限取決于集群性能。
設置發布策略。
配置項
描述
發布批次
應用實例按照設定的批次完成分批發布。
分批間處理方式
說明僅發布批次大于1時,才會顯示分批間處理方式。
包含自動和手動兩種方式。
自動:根據間隔自動分批發布。間隔即剩余批次間的發布時間間隔,單位為min。
手動:手動觸發下一個批次的發布。
批次內部署間隔
如果應用實例數大于1,應用實例間的部署時間間隔,單位為秒。
可選:根據您的實際需求,選擇是否需要配置調度規則、啟動命令、環境變量、持久化存儲、本地存儲、應用生命周期管理和日志收集設置等高級配置。更多信息,請參見高級配置。
設置完成后,單擊確定。
結果驗證
在應用的變更記錄頁面,查看分批發布的狀態,以及描述信息中的版本,待所有批次都執行成功,且版本已變為Ver.2時,說明分批發布成功。
回滾應用
在分批發布期間,只要至少有一個應用實例未升級為新版本,就認為發布處于執行中狀態。在應用升級時,如果第一批升級的應用實例停止響應,您可以進入應用變更記錄頁面,單擊回滾,將已發布的實例回滾到以前的服務包和配置。
在分批發布時,可能會遇到異常。如何排查并解決異常,請參見變更流程問題排查指南。
部署包不可用、健康檢查失敗等異常報錯會導致應用升級失敗,當前應用變更會自動終止并回滾。
升級時單批次最大超時時間為30分鐘,如果是超時導致變更流程暫停,您需進入變更記錄頁面手動終止發布流程并回滾。