全部產品
Search
文件中心

Enterprise Distributed Application Service:使用控制台分批發布應用(K8s)

更新時間:Jun 30, 2024

應用規模較大或服務架構比較複雜,可以按批次進行部署。每次僅對應用的一部分執行個體進行升級,直至全量升級完成。本文介紹如何使用EDAS控制台分批發布應用。

分批發布簡介

分批發布是按照一定的批次,每次只對應用的一部分執行個體進行升級的發布過程。分批發布過程中如果出現故障,您可以終止變更過程並進行復原,待問題修複後重新發布。

在K8s叢集中,當一個應用進行分批發布時,是將該應用內的應用執行個體數均分到每一個批次進行部署,如果不能均分則批次靠前數量較小,批次靠後數量較大。

情境示意

現有一個應用程式套件含10個應用執行個體,每個應用執行個體的部署版本為Ver.1版本,現需將每個應用執行個體升級為Ver.2版本。

假設將所有應用執行個體分3批進行部署,根據分批發布的策略,該發布的流程示意圖如下:

ED分批發布示意圖AS

使用須知

在K8s叢集中,應用使用分批發布時會建立Deployment進行部署。

操作步驟

  1. 登入EDAS控制台

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

  3. 應用總覽頁面右上方,選擇部署 > 部署

  4. 選擇部署模式頁面分批發布地區,單擊開始部署

  5. 分批發布頁面上傳應用新版本的部署套件。

    配置項

    描述

    應用運行環境

    預設標準Java應用運行環境

    Java環境

    選擇Open JDK 8 [最新版本:1.8.0_191]Open JDK 7Open JDK 17Open JDK 11JDK 8JDK 7Dragonwell 8Dragonwell 17Dragonwell 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則代表不限額。沒有配額限制,上限取決於叢集效能。

  6. 設定發布策略

    分批發布-發布策略

    配置項

    描述

    發布批次

    應用執行個體按照設定的批次完成分批發布。

    分批間處理方式

    說明

    發布批次大於1時,才會顯示分批間處理方式

    包含自動手動兩種方式。

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

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

    批次內部署間隔

    如果應用執行個體數大於1,應用執行個體間的部署時間間隔,單位為秒。

  7. 可選:根據您的實際需求,選擇是否需要配置調度規則啟動命令環境變數持久化儲存本機存放區應用生命週期管理日誌收集設定等進階配置。更多資訊,請參見進階配置

  8. 設定完成後,單擊確定

結果驗證

在應用的變更記錄頁面,查看分批發布的狀態,以及描述資訊中的版本,待所有批次都執行成功,且版本已變為Ver.2時,說明分批發布成功。

復原應用

在分批發布期間,只要至少有一個應用執行個體未升級為新版本,就認為發布處於執行中狀態。在應用升級時,如果第一批升級的應用執行個體停止回應,您可以進入應用變更記錄頁面,單擊復原,將發行的執行個體復原到以前的服務包和配置。

在分批發布時,可能會遇到異常。如何排查並解決異常,請參見變更流程問題排查指南

  • 部署套件不可用、健全狀態檢查失敗等異常報錯會導致應用升級失敗,當前應用變更會自動終止並復原。

  • 升級時單批次最大逾時時間為30分鐘,如果是逾時導致變更流程暫停,您需進入變更記錄頁面手動終止發布流程並復原。