EDAS在云原生K8s之上,全面集成了容器服務ACK,支持K8s容器化應用的全生命周期管理。容器服務ACK集成了阿里云虛擬機、存儲、網絡和安全等能力,擁有云端極佳的K8s容器化應用運行環境。本文介紹了如何在K8s集群中使用鏡像部署Java微服務應用。
背景信息
在容器服務K8s集群中部署應用,您需在容器服務Kubernetes版控制臺中創建容器服務Kubernetes版集群,并將該集群導入到EDAS控制臺,然后在導入的容器服務K8s集群中使用部署包或鏡像來部署應用。
前提條件
您的阿里云賬號已同時開通EDAS和容器服務Kubernetes版。具體操作,請參見開通EDAS和首次使用容器服務Kubernetes版。
已創建微服務空間。具體操作,請參見創建微服務空間。
已在容器服務Kubernetes版完成角色授權。具體操作,請參見容器服務ACK服務角色。
步驟一:創建容器服務Kubernetes集群
登錄容器服務Kubernetes版控制臺,創建容器服務Kubernetes集群。具體操作,請參見快速創建Kubernetes托管版集群。
如果創建Serverless Kubernetes集群,專有網絡請選擇自動創建(選擇已有網絡,創建完畢后請查看集群資源是否包含VPC和交換機資源),服務發現請選擇PrivateZone,以便Serverless Kubernetes集群在導入EDAS后可以使用服務網格。具體操作,請參見創建ASK集群。
步驟二:在EDAS控制臺中導入容器服務K8s集群
在EDAS控制臺導入容器服務K8s集群時,會默認安裝應用防護(限流降級)組件(ack-ahas-sentinel-pilot)、ARMS監控組件(ack-arms-pilot)以及Prometheus監控組件(ack-arms-prometheus)。
登錄EDAS控制臺,在左側導航欄,選擇 。
在頂部菜單欄選擇地域,然后單擊同步容器服務Kubernetes集群。
在導入的容器服務K8s集群的操作列,單擊導入。
在導入預檢對話框,單擊繼續導入。
在導入Kubernetes集群對話框,從下拉列表中選擇目標微服務空間,根據需要選擇是否開啟服務網格,然后單擊導入。
當容器服務K8s集群狀態顯示為運行中,并且導入狀態顯示為導入成功時,表示容器服務K8s集群已成功導入到EDAS。
步驟三:在K8s集群中部署應用
登錄EDAS控制臺,在左側導航欄單擊 ,在頂部菜單欄選擇地域并在頁面上方選擇微服務空間,然后在應用列表頁面左上角單擊創建應用。
在應用基本信息頁面中設置應用的集群類型和應用運行環境,然后單擊下一步。
配置項
描述
集群類型
選擇Kubernetes集群。
說明Kubernetes集群支持服務網格。
應用來源類型
選擇默認。
應用運行環境
托管應用類型
本文介紹如何部署Java應用,所以選擇Java。 如果需要部署PHP或多語言應用,請參見從源碼構建PHP應用并部署至容器服務K8s集群。
選擇應用
應用的運行環境。不同托管應用類型,不同部署包類型,需要選擇不同的Java應用環境。本文中選擇自定義,即使用鏡像部署Java應用。應用運行環境包含在鏡像中,無需選擇。
說明OpenJDK 17支持2.7.14和3.0.6及以上版本的Dubbo。兼容性測試結果,請參見OpenJDK 17兼容測試數據。
表 2. 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
在應用配置頁簽中設置應用的環境信息、基本信息、部署方式和資源參數,設置完成后單擊下一步。
配置項
描述
微服務空間
應用所屬空間。選擇您創建的微服務空間,如果您未創建或不做選擇,微服務空間則設置為默認。
如果您沒有創建微服務空間,或者需要創建新的微服務空間,您可以直接單擊創建微服務空間,創建一個全新的微服務空間。具體操作,請參見使用控制臺管理微服務空間。
集群
在右側下拉選擇框內選擇目標K8s集群。
如果您選擇的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個字符。
鏡像類型
配置鏡像
阿里云鏡像服務選擇當前賬號。
選擇鏡像所屬地域、容器鏡像服務、鏡像倉庫命名空間、鏡像倉庫名和鏡像版本。
阿里云鏡像服務選擇為其他阿里云賬號。
如您的鏡像存放在公開倉庫中,那么您配置完整鏡像地址即可。
如您的鏡像存放在私有倉庫中,那么您需要使用免密插件拉取容器鏡像,請參見使用免密組件拉取容器鏡像。
Demo鏡像
選擇EDAS提供的Demo鏡像和鏡像版本。
說明專有云暫不支持Demo鏡像。
說明如果您以RAM用戶且使用企業版容器鏡像倉庫里的鏡像創建應用時,需要阿里云賬號為該RAM用戶授權。具體信息,請參見RAM授權信息。
Pod總數
設置該應用要部署的Pod個數。沒有數量限制,上限取決于集群性能。
單Pod資源配額
設置單個Pod的CPU、內存和臨時存儲,如果您需要限額,請填寫具體的數字,使用默認值0則代表不限額。沒有配額限制,上限取決于集群性能。
(可選)配置應用高級設置。
- 重要
如果使用JDK 11,需要配置注解:
one-agent.jdk.version: OpenJDK11
。如果使用JDK 17,需要配置注解:
one-agent.jdk.version: OpenJDK17
。
完成設置后單擊創建應用,然后在應用創建完成頁簽,單擊確定創建應用。
在應用變更預檢確認對話框,單擊開始預檢。
在應用變更預檢確認的下一頁,確認預檢項和預檢結果,單擊繼續。
可選:如您有更改以上預檢項,請單擊重新檢測。
應用創建可能需要幾分鐘,創建過程中,可以通過查看變更記錄跟蹤應用的創建流程。創建完成后,返回應用總覽頁面,查看實例Pod的運行狀態。若運行狀態為運行中,說明應用發布成功。單擊Pod的運行狀態可以查看應用實例的工作負載(Deployment)、容器組(Pod)和高級配置信息。
后續步驟
應用創建完畢后,可以通過添加公網SLB實現公網訪問,添加私網SLB實現同VPC內所有節點能夠通過私網負載均衡訪問您的應用。相關操作,請參見添加負載均衡CLB或復用負載均衡CLB。
聯系我們
如果您在EDAS中使用容器服務K8s集群和Serverless K8s集群過程中有任何疑問或建議,請加入釘群(釘群號:23197114)聯系產品技術專家咨詢處理。