全部產品
Search
文件中心

Enterprise Distributed Application Service:在Serverless K8s叢集中使用JAR包或WAR包部署應用

更新時間:Dec 27, 2024

EDAS在雲原生Kubernetes之上,全面整合了Container ServiceKubernetes版,支援K8s容器化應用的全生命週期管理。Serverless Kubernetes適合快速伸縮的敏捷業務情境。本教程介紹如何在Serverless K8s叢集中使用官方demo的JAR包或WAR包來部署應用。

背景資訊

在Serverless K8s叢集中部署應用,您需在Container ServiceKubernetes版控制台中建立Serverless K8s叢集,並將該叢集匯入到EDAS控制台,然後在匯入的Serverless K8s叢集中使用部署套件或鏡像來部署應用。

在K8s叢集中部署應用流程圖

前提條件

步驟一:建立Serverless Kubernetes叢集

登入Container ServiceKubernetes版控制台,建立Serverless Kubernetes叢集。具體操作,請參見建立ASK叢集

步驟二:在EDAS控制台中匯入Serverless Kubernetes叢集

在EDAS控制台匯入Container ServiceK8s叢集時,會預設安裝應用防護(限流降級)組件(ack-ahas-sentinel-pilot)、ARMS監控組件(ack-arms-pilot)以及Prometheus監控組件(ack-arms-prometheus)。

  1. 登入EDAS控制台,在左側導覽列選擇資源管理 > Serverless K8s 叢集

  2. 在頂部功能表列選擇地區,選擇要匯入叢集的目標微服務空間,然後單擊同步Serverless K8s叢集

  3. 在匯入的Serverless K8s叢集的操作列,單擊匯入

  4. 警告對話方塊,單擊確定

  5. 匯入預檢對話方塊,單擊繼續匯入

  6. 匯入Kubernetes叢集對話方塊,從下拉式清單中選擇目標微服務空間,根據需要選擇是否開啟服務網格,然後單擊匯入

    當Serverless K8s叢集狀態顯示為運行中,並且匯入狀態顯示為匯入成功時,表示Container ServiceServerless K8s叢集已成功匯入到EDAS。

步驟三:在Serverless K8s叢集中部署應用

說明

WAR和JAR的部署步驟一致,本文以通過JAR為例介紹如何部署應用。

  1. 登入EDAS控制台,在左側導覽列單擊應用管理 > 應用列表,在頂部功能表列選擇地區並在頁面上方選擇微服務空間,然後在應用列表頁面左上方單擊建立應用

  2. 應用基本資料頁面中設定應用的叢集類型和應用運行環境,然後單擊下一步

    配置項

    描述

    叢集類型

    選擇Kubernetes叢集

    應用來源類型

    選擇預設

    應用運行環境

    託管應用類型

    本文介紹如何部署Java應用,所以選擇Java。如果需要部署PHP或多語言應用,請參見從源碼構建PHP應用並部署至Container ServiceK8s叢集

    选择应用

    本文介紹如何通過JAR包或WAR包部署Java應用,所以請根據應用類型和部署套件選擇JavaTomcatEDAS-Container(HSF)。如果需要通過鏡像部署應用,請參見在K8s叢集中使用鏡像部署Java微服務應用

    • Java:支援通用的JAR包部署,適用於Dubbo和Spring Boot應用。選擇後,可設定Java环境

    • Tomcat:支援通用的WAR包部署,適用於Dubbo和Spring應用。選擇後,可設定Java环境容器版本

    • EDAS-Container(HSF):適用於使用WAR或者FatJar部署HSF應用。選擇後,可設定Java环境Pandora版本Ali-Tomcat版本

    說明

    OpenJDK 17支援2.7.14和3.0.6及以上版本的Dubbo。相容性測試結果,請參見OpenJDK 17相容測試資料

    表 1. OpenJDK 17相容測試資料

    Dubbo版本

    Spring Boot版本

    Nacos-Client版本

    介面調用

    ARMS監控

    服務列表

    2.7.14

    2.7.9

    1.4.4

    OK

    OK

    OK

    2.7.14

    2.7.9

    2.1.2

    OK

    OK

    OK

    2.7.14

    2.7.9

    2.2.0

    OK

    OK

    OK

    2.7.22

    2.7.9

    1.4.4

    OK

    OK

    OK

    2.7.22

    2.7.9

    2.1.2

    OK

    OK

    OK

    2.7.22

    2.7.9

    2.2.0

    OK

    OK

    OK

    3.0.6

    2.7.9

    1.4.4

    OK

    OK

    OK

    3.0.6

    2.7.9

    2.1.2

    OK

    OK

    OK

    3.0.6

    2.7.9

    2.2.0

    OK

    OK

    OK

    3.1.7

    2.7.9

    1.4.4

    OK

    OK

    OK

    3.1.7

    2.7.9

    2.1.2

    OK

    OK

    OK

    3.1.7

    2.7.9

    2.2.0

    OK

    OK

    OK

  3. 應用配置頁簽中設定應用的環境資訊、基本資料、部署方式和資源參數,設定完成後單擊下一步

    配置項

    描述

    微服務空間

    應用所屬空間。選擇您建立的微服務空間,如果您未建立微服務空間或不做選擇,微服務空間則設定為預設

    如果您沒有建立微服務空間,或者需要建立新的微服務空間,您可以直接單擊建立微服務空間,建立一個全新的微服務空間。具體操作,請參見使用控制台管理微服務空間

    叢集

    在右側下拉式清單內選擇已匯入的Container ServiceK8s叢集。

    如果您選擇的K8s叢集未匯入到EDAS,請選中該叢集在EDAS初次使用,勾選後,將會在應用建立時將該叢集匯入EDAS,因此會產生一定耗時。並確認是否開啟服務網格。

    說明

    叢集匯入的微服務空間可以不是應用所屬微服務空間。

    K8s Namespace

    K8s Namespace通過將系統內部的對象分配到不同的Namespace中,形成邏輯上分組的不同專案、小組或使用者組,便於不同的分組在共用使用整個叢集的資源的同時還能被分別管理。

    • default:沒有其他命名空間的對象的預設命名空間。

    • kube-system:系統建立的對象的命名空間。

    • kube-public:此命名空間是自動建立的,並且可供所有使用者(包括未經過身分識別驗證的使用者)讀取。

    此處以選擇default為例。

    如果您需要自訂建立K8s Namespace,請單擊建立K8s Namespace並設定K8s Namespace名稱。名稱設定要求只能包含數字、小寫字母和短劃線(-),且首尾只能是字母或數字,長度為1~63個字元。

    應用程式名稱

    輸入應用程式名稱,必須以字母開頭,允許數字、字母、短劃線(-)組合。最多可輸入36個字元。

    應用描述

    輸入應用描述 ,最大長度為128個字元。

    部署套件來源

    自訂程式

    需選擇檔案上傳方式

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

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

    官方Demo

    EDAS提供的Demo類型有Spring Cloud服务端应用Spring Cloud客户端应用Dubbo服务端应用Dubbo客户端应用,請依據實際需求選擇。

    構建倉庫類型

    說明
    • 構建倉庫類型功能僅支援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企業版時需要配置。

    鏡像倉庫命名空間

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

    版本

    請輸入版本,您可以自訂版本號碼,也可以單擊右側的用時間戳記作為版本號碼自動產生版本號碼。

    時區

    設定應用的時區資訊。

    OpenJDK基礎鏡像

    說明

    應用基本資料頁面Java環境處,選擇自訂OpenJDK時,參數OpenJDK基礎鏡像才會出現。

    配置鏡像

    • 阿里雲鏡像服務選擇當前帳號

      選擇鏡像所屬地區Container Registry鏡像倉庫命名空間鏡像倉庫名和鏡像版本。

    • 阿里雲鏡像服務選擇為其他阿里雲帳號。 如您的鏡像存放在公開倉庫中,那麼您配置完整鏡像地址即可。

      重要

      當前僅支援JDK7和JDK8,使用其他版本的JDK可能導致應用監控功能使用異常。EDAS服務端會拉取該鏡像構建應用鏡像,您需確保該鏡像的拉取許可權為公開。

    Pod總數

    設定該應用要部署的Pod個數。沒有數量限制,上限取決於叢集效能。

    單Pod資源配額

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

  4. (可選)配置應用進階設定。

  5. 完成設定後單擊建立應用,然後在應用建立完成頁簽,單擊確定建立應用

  6. 應用變更預檢確認對話方塊,單擊開始預檢

    1. 應用變更預檢確認的下一頁,確認預檢項和預檢結果,單擊繼續

    2. 可選:如您有更改以上預檢項,請單擊重新檢測

    應用建立可能需要幾分鐘,建立過程中,可以通過查看變更記錄跟蹤應用的建立流程。建立完成後,返回應用總覽頁面,查看執行個體Pod的運行狀態。若運行狀態運行中,說明應用發布成功。單擊Pod的運行狀態可以查看應用執行個體的工作負載(Deployment)容器組(Pod)和進階配置資訊。

後續步驟

應用建立完畢後,可以通過添加公網SLB實現公網訪問,添加私網SLB實現同VPC內所有節點能夠通過私網負載平衡訪問您的應用。具體操作,請參見為Kubernetes叢集中的應用添加Server Load Balancer

EDASContainer ServiceK8s和Serverless K8s交流群

如果您在EDAS中使用Container ServiceK8s叢集和Serverless K8s叢集過程中有任何疑問或建議,請使用DingTalk搜尋DingTalk群號23197114加入DingTalk群進行反饋。