您在本地完成應用的開發、調試和測試後,可以在IntelliJ IDEA中安裝Cloud Toolkit外掛程式實現EDAS應用的快速部署。本文檔將介紹如何在IntelliJ IDEA中安裝Cloud Toolkit,並快速部署應用到Container ServiceK8s叢集。
前提條件
下載並安裝JDK 1.8或更高版本。
下載並安裝IntelliJ IDEA (2018.3或更高版本)。
說明因JetBrains外掛程式市場官方伺服器在海外,如遇訪問緩慢無法下載安裝的,請加入文末交流群,向Cloud Toolkit技術支援人員擷取離線包安裝。
在Container ServiceK8s叢集中建立了應用並完成了首次部署,相關操作請參見在K8s叢集中使用鏡像部署Java微服務應用。
步驟一:安裝Cloud Toolkit
啟動IntelliJ IDEA。
在IntelliJ IDEA中安裝最新版本的外掛程式。
如您之前已安裝過舊版安裝包,請升級至最新版本。
mac系統:進入Preference配置頁面,在左側導覽列選擇Plugins,在右側搜尋方塊輸入Alibaba Cloud Toolkit,然後單擊Install安裝。
Windows系統:在左側導覽列選擇Plugins,在右側搜尋方塊輸入Alibaba Cloud Toolkit,並單擊Install安裝。
在IntelliJ IDEA中外掛程式安裝成功後,重啟IntelliJ IDEA,您可以在工具列看到Alibaba Cloud Toolkit的表徵圖()。
步驟二:配置Cloud Toolkit帳號
在安裝完Alibaba Cloud Toolkit後,您需使用AccessKey ID和AccessKey Secret來配置Cloud Toolkit的帳號。
啟動IntelliJ IDEA。
在IntelliJ IDEA功能表列選擇 。
在左側導覽列選擇Alibaba Cloud Toolkit > Accounts。
在Accounts介面中設定 AccessKey ID和AccessKey Secret,然後單擊OK。
如果您使用RAM使用者的AccessKey ID和AccessKey Secret,請確認該RAM使用者至少擁有部署應用的許可權。
如果您是EDAS專有雲企業版使用者,還需配置Endpoint才能正常使用Cloud Toolkit功能。
如果您已經註冊過阿里雲帳號,在Accounts介面中單擊Get existing AK/SK,進入阿里雲登入頁面。用已有帳號登入後,跳轉至安全資訊管理頁面,擷取AccessKey ID和AccessKey Secret。
如果您還沒有阿里雲帳號,在Accounts介面中單擊Sign up,進入阿里雲帳號註冊頁面,註冊帳號。註冊完成後按照上述方式擷取AccessKey ID和AccessKey Secret。
步驟三:部署應用到Container ServiceK8s叢集
在IntelliJ IDEA功能表列選擇 。
您也可以在IntelliJ IDEA功能表列選擇
,在Run/Debug configurations對話方塊左側選擇 。在Deploy to EDAS對話方塊配置應用部署參數。
在配置頁面中根據您的實際需求選擇應用的Region、Namespace和Application。
重要如果在應用列表中擷取不到應用,排查問題原因的具體步驟,請參見常見問題。
Region:應用所在地區。
Namespace:應用所在微服務空間。
Application:應用程式名稱。
設定部署方式,可選的部署方式由您在控制台第一次部署的方式決定。
Maven Build:選擇Maven Build方式來構建應用時,系統會預設添加一個Maven任務來構建部署套件。
說明如果您想部署多模組工程,請參見部署多模組工程。
Upload File:選擇Upload File方式來構建應用時,選擇上傳您的WAR包或者JAR包,然後進行部署。
Build Image:選擇Build Image方式來構建應用時,需要依次輸入工作目錄Content Directory,檔案路徑Dockerfile和鏡像標籤Version。
Select Image:選擇Build Image方式來構建應用時,可在Select Image的下拉式清單選擇需要部署的鏡像。
單擊Advanced進入進階部署參數設定頁簽,並配置Application Environment、Startup Command、Environments、Persistence、Storage 和Appcalition Management等參數。
詳細的進階部署參數解釋,請參見DeployK8sApplication。
Application Environment:設定應用運行環境資訊,多次重複部署時需要重新填寫PackageVersion。
Startup Command:設定啟動命令資訊,詳細的部署參數解釋,請參見DeployK8sApplication。
Environments:設定部署環境變數資訊,詳細的部署參數解釋,請參見DeployK8sApplication。
Persistence:設定持久化儲存。
Storage:設定本機存放區,詳細的部署參數解釋,請參見DeployK8sApplication。
Application Management:設定應用生命週期管理。
Poststart指令碼:一種容器鉤子。該鉤子在容器被建立後立刻觸發,通知容器它已經被建立。該鉤子不需要向其所對應的hook handler傳入任何參數。如果該鉤子對應的hook handler執行失敗,則該容器會停止運行,並根據該容器的重啟策略決定是否要重啟該容器。更多資訊,請參見Container Lifecycle Hooks。
PreStop指令碼:一種容器鉤子。該鉤子在容器被刪除前觸發,其所對應的hook handler必須在刪除該容器的請求發送給Docker daemon之前完成。在該鉤子對應的hook handler完成後不論執行的結果如何,Docker daemon會發送一個SIGTERN訊號量給Docker daemon來刪除該容器。更多資訊,請參見Container Lifecycle Hooks。
Liveness指令碼:一種探測容器狀態的探針,探測應用是否處於健康狀態。如果不健康,則刪除重建容器。更多資訊,請參見Pod Lifecycle。
Readiness指令碼:一種探測容器狀態的探針,探測應用是否啟動完成並且處於正常服務狀態。如果不正常,則更新容器的狀態。更多資訊,請參見Pod Lifecycle。
單擊Apply,再單擊Run。
IntelliJ IDEA的Console地區會列印部署日誌。您可以根據日誌資訊檢查部署結果。
部署多模組工程
實際工作中碰到的大部分Maven工程都是多模組的,各個專案模組可以獨立開發,其中某些模組又可能會使用到其他的一些模組的功能,這樣的專案工程就是多模組工程。
如果您的工程專案為Maven多模組工程並且想部署工程中的某子模組,那麼需要保證EDAS Deployment Configurations頁面中的Before launch中的Maven構建任務中最後一個任務為該子模組的構建任務。管理Maven構建任務的具體操作,請參見Maven構建任務的管理。
例如:一個CarShop工程存在以下樣本的子模組。
carshop
├── itemcenter-api
├── itemcenter
├── detail
其中itemcenter和detail為子模組,且都依賴於itemcenter-api模組,現在想部署itemcenter模組,應該怎麼做?只需要在配置頁面中的Before launch中增加如下兩個Maven任務:
增加一個在父工程carshop中執行
mvn clean install
的Maven任務。增加一個在子模組itemcenter中執行
mvn clean package
的Maven任務。
Maven構建任務的管理
在IntelliJ IDEA中安裝的Cloud Toolkit內可以部署Maven的構建任務。您也可以在 Deploy to EDAS的配置頁面的Before launch地區來添加、刪除、修改和移動Maven構建任務。
在添加Maven構建任務編輯框中,您可以單擊右側的檔案夾按鈕選擇當前工程的所有可用模組,並在Command line中編輯構建命令。
常見問題
應用列表擷取不到應用
通常出現這種情況為使用RAM使用者來部署應用,且RAM使用者沒有同步到EDAS系統或者沒有進行正確授權,從而導致在應用列表下拉框中看不到應用。您可以通過RAM授權或EDAS子帳號授權來確保RAM使用者已經同步到EDAS並且得到授權。
RAM授權
該授權方式可使RAM使用者訪問EDAS的所有資源。
EDAS子帳號授權
該授權方式可使子帳號細粒度授權訪問EDAS的資源。
使用阿里雲主帳號登入EDAS控制台。
在左側導覽列選擇
,單擊頁面右上方的建立角色。輸入一個角色名稱,在可選許可權地區框中,選擇
,單擊添加將部署應用添加到已選許可權,然後單擊確定。在左側導覽列選擇
,單擊子帳號頁面右上方的同步子帳號。選擇需進行授權的子帳號,在EDAS舊鑒權列單擊管理角色,在左側搜尋並選擇目標角色,將該角色添加到右側已選角色列表中,然後單擊確定。
選擇需進行授權的子帳號,在EDAS舊鑒權列單擊授權應用,在左側搜尋並選擇目標應用,將該應用添加到右側已選應用列表中,然後單擊確定。
配置Endpoint
說明如果使用EDAS專有雲企業版,還需要按以下步驟在Cloud Toolkit中配置Endpoint。Endpoint請聯絡EDAS支援人員擷取。
在Preference(Filtered)對話方塊的左側導覽列中選擇Appearance & BehaviorEndpoint。
在Endpoint介面中設定Endpoint,配置完成後,單擊Apply and Close。