EDAS在雲原生Kubernetes之上,全面整合了Container ServiceKubernetes版,支援K8s容器化應用的全生命週期管理。Serverless Kubernetes適合快速伸縮的敏捷業務情境。本教程介紹如何在Serverless K8s叢集中使用官方demo的JAR包或WAR包來部署應用。
背景資訊
在Serverless K8s叢集中部署應用,您需在Container ServiceKubernetes版控制台中建立Serverless K8s叢集,並將該叢集匯入到EDAS控制台,然後在匯入的Serverless K8s叢集中使用部署套件或鏡像來部署應用。
前提條件
您的阿里雲帳號已同時開通EDAS和Container ServiceKubernetes版。具體操作,請參見開通EDAS和首次使用Container ServiceKubernetes版。
已建立微服務空間。具體操作,請參見建立微服務空間。
已在Container ServiceKubernetes版完成角色授權。具體操作,請參見Container ServiceACK服務角色。
步驟一:建立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)。
登入EDAS控制台,在左側導覽列選擇 。
在頂部功能表列選擇地區,選擇要匯入叢集的目標微服務空間,然後單擊同步Serverless K8s叢集。
在匯入的Serverless K8s叢集的操作列,單擊匯入。
在警告對話方塊,單擊確定。
在匯入預檢對話方塊,單擊繼續匯入。
在匯入Kubernetes叢集對話方塊,從下拉式清單中選擇目標微服務空間,根據需要選擇是否開啟服務網格,然後單擊匯入。
當Serverless K8s叢集狀態顯示為運行中,並且匯入狀態顯示為匯入成功時,表示Container ServiceServerless K8s叢集已成功匯入到EDAS。
步驟三:在Serverless K8s叢集中部署應用
WAR和JAR的部署步驟一致,本文以通過JAR為例介紹如何部署應用。
登入EDAS控制台,在左側導覽列單擊 ,在頂部功能表列選擇地區並在頁面上方選擇微服務空間,然後在應用列表頁面左上方單擊建立應用。
在應用基本資料頁面中設定應用的叢集類型和應用運行環境,然後單擊下一步。
在應用配置頁簽中設定應用的環境資訊、基本資料、部署方式和資源參數,設定完成後單擊下一步。
配置項
描述
微服務空間
應用所屬空間。選擇您建立的微服務空間,如果您未建立微服務空間或不做選擇,微服務空間則設定為預設。
如果您沒有建立微服務空間,或者需要建立新的微服務空間,您可以直接單擊建立微服務空間,建立一個全新的微服務空間。具體操作,請參見使用控制台管理微服務空間。
叢集
在右側下拉式清單內選擇已匯入的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則代表不限額。沒有配額限制,上限取決於叢集效能。
(可選)配置應用進階設定。
完成設定後單擊建立應用,然後在應用建立完成頁簽,單擊確定建立應用。
在應用變更預檢確認對話方塊,單擊開始預檢。
在應用變更預檢確認的下一頁,確認預檢項和預檢結果,單擊繼續。
可選:如您有更改以上預檢項,請單擊重新檢測。
應用建立可能需要幾分鐘,建立過程中,可以通過查看變更記錄跟蹤應用的建立流程。建立完成後,返回應用總覽頁面,查看執行個體Pod的運行狀態。若運行狀態為運行中,說明應用發布成功。單擊Pod的運行狀態可以查看應用執行個體的工作負載(Deployment)、容器組(Pod)和進階配置資訊。
後續步驟
應用建立完畢後,可以通過添加公網SLB實現公網訪問,添加私網SLB實現同VPC內所有節點能夠通過私網負載平衡訪問您的應用。具體操作,請參見為Kubernetes叢集中的應用添加Server Load Balancer。
EDASContainer ServiceK8s和Serverless K8s交流群
如果您在EDAS中使用Container ServiceK8s叢集和Serverless K8s叢集過程中有任何疑問或建議,請使用DingTalk搜尋DingTalk群號23197114加入DingTalk群進行反饋。