全部產品
Search
文件中心

Enterprise Distributed Application Service:使用Cloud Toolkit外掛程式單批發布應用(K8s)

更新時間:Jun 30, 2024

您在本地完成應用的開發、調試和測試後,可以在IntelliJ IDEA中安裝Cloud Toolkit外掛程式實現EDAS應用的快速部署。本文檔將介紹如何在IntelliJ IDEA中安裝Cloud Toolkit,並快速部署應用到Container ServiceK8s叢集。

前提條件

步驟一:安裝Cloud Toolkit

  1. 啟動IntelliJ IDEA。

  2. 在IntelliJ IDEA中安裝最新版本的外掛程式。

    如您之前已安裝過舊版安裝包,請升級至最新版本。

    • mac系統:進入Preference配置頁面,在左側導覽列選擇Plugins,在右側搜尋方塊輸入Alibaba Cloud Toolkit,然後單擊Install安裝。Install-Intellij-Idea-MAC-20190722.png

    • Windows系統:在左側導覽列選擇Plugins,在右側搜尋方塊輸入Alibaba Cloud Toolkit,並單擊Install安裝。edas-cloudtoolkit-installconfig-Windows-20190722.png

  3. 在IntelliJ IDEA中外掛程式安裝成功後,重啟IntelliJ IDEA,您可以在工具列看到Alibaba Cloud Toolkit的表徵圖(act表徵圖)。

步驟二:配置Cloud Toolkit帳號

在安裝完Alibaba Cloud Toolkit後,您需使用AccessKey ID和AccessKey Secret來配置Cloud Toolkit的帳號。

  1. 啟動IntelliJ IDEA。

  2. 在IntelliJ IDEA功能表列選擇Tools > Alibaba Cloud > Preference…

  3. 在左側導覽列選擇Alibaba Cloud Toolkit > Accounts

  4. Accounts介面中設定 AccessKey IDAccessKey Secret,然後單擊OK

    • 如果您使用RAM使用者的AccessKey ID和AccessKey Secret,請確認該RAM使用者至少擁有部署應用的許可權。

    • 如果您是EDAS專有雲企業版使用者,還需配置Endpoint才能正常使用Cloud Toolkit功能。Config-Idea-Cloud-Toolkit-Account.png

      • 如果您已經註冊過阿里雲帳號,在Accounts介面中單擊Get existing AK/SK,進入阿里雲登入頁面。用已有帳號登入後,跳轉至安全資訊管理頁面,擷取AccessKey IDAccessKey Secret

      • 如果您還沒有阿里雲帳號,在Accounts介面中單擊Sign up,進入阿里雲帳號註冊頁面,註冊帳號。註冊完成後按照上述方式擷取AccessKey IDAccessKey Secret

步驟三:部署應用到Container ServiceK8s叢集

  1. 在IntelliJ IDEA功能表列選擇Tools > Alibaba Cloud > Deploy to EDAS > EDAS for Kubernetes Application

    您也可以在IntelliJ IDEA功能表列選擇Run > Edit Configurations,在Run/Debug configurations對話方塊左側選擇Templates > EDAS on Alibaba Cloud > EDAS for Kubernetes Application

  2. Deploy to EDAS對話方塊配置應用部署參數。

    edas-cloudtoolkit-installK8sApp-Windows-20190722.png

    1. 在配置頁面中根據您的實際需求選擇應用的RegionNamespaceApplication

      重要

      如果在應用列表中擷取不到應用,排查問題原因的具體步驟,請參見常見問題

      • Region:應用所在地區。

      • Namespace:應用所在微服務空間。

      • Application:應用程式名稱。

    2. 設定部署方式,可選的部署方式由您在控制台第一次部署的方式決定。

      • Maven Build:選擇Maven Build方式來構建應用時,系統會預設添加一個Maven任務來構建部署套件。

        說明

        如果您想部署多模組工程,請參見部署多模組工程

      • Upload File:選擇Upload File方式來構建應用時,選擇上傳您的WAR包或者JAR包,然後進行部署。

      • Build Image:選擇Build Image方式來構建應用時,需要依次輸入工作目錄Content Directory,檔案路徑Dockerfile和鏡像標籤Versionedas-cloudtoolkit-installK8sApp-BuildImage-20190722

      • Select Image:選擇Build Image方式來構建應用時,可在Select Image的下拉式清單選擇需要部署的鏡像。

    3. 單擊Advanced進入進階部署參數設定頁簽,並配置Application EnvironmentStartup CommandEnvironmentsPersistenceStorage Appcalition Management等參數。

      詳細的進階部署參數解釋,請參見DeployK8sApplicationedas-cloudtoolkit-installK8sApp-advanced-20190722.png

      • Application Environment:設定應用運行環境資訊,多次重複部署時需要重新填寫PackageVersionedas-cloudtoolkit-installK8sApp-advanced-Application Environment.png

      • Startup Command:設定啟動命令資訊,詳細的部署參數解釋,請參見DeployK8sApplication

      • Environments:設定部署環境變數資訊,詳細的部署參數解釋,請參見DeployK8sApplication

      • Persistence:設定持久化儲存。edas-cloudtoolkit-installK8sApp-advanced-persistence.png

      • 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

  3. 單擊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構建任務。

edas-cloudtoolkit-idea-manage-APP.png

在添加Maven構建任務編輯框中,您可以單擊右側的檔案夾按鈕選擇當前工程的所有可用模組,並在Command line中編輯構建命令。

add-maven-in-Intellij-Idea.png

常見問題

  • 應用列表擷取不到應用

    通常出現這種情況為使用RAM使用者來部署應用,且RAM使用者沒有同步到EDAS系統或者沒有進行正確授權,從而導致在應用列表下拉框中看不到應用。您可以通過RAM授權或EDAS子帳號授權來確保RAM使用者已經同步到EDAS並且得到授權。

    • RAM授權

      該授權方式可使RAM使用者訪問EDAS的所有資源。

      1. RAM控制台左側導覽列中選擇身份管理 > 使用者

      2. 使用者頁面上找到需要授權的RAM使用者,單擊操作列中的添加許可權

      3. 添加許可權面板的選擇許可權地區中,搜尋AliyunEDASFullAccess許可權,單擊權限原則將其添加至右側的已選擇列表中,然後單擊確定

      4. 添加許可權的授權結果頁面上,查看授權資訊摘要,並單擊完成

      5. 使用阿里雲帳號登入EDAS控制台,在左側導覽列選擇系統管理 > 子帳號,單擊子帳號頁面右上方的同步子帳號

    • EDAS子帳號授權

      該授權方式可使子帳號細粒度授權訪問EDAS的資源。

      1. 使用阿里雲主帳號登入EDAS控制台

      2. 在左側導覽列選擇系統管理 > 角色,單擊頁面右上方的建立角色

      3. 輸入一個角色名稱,在可選許可權地區框中,選擇應用列表 > 基本資料 > 部署應用,單擊添加將部署應用添加到已選許可權,然後單擊確定

      4. 在左側導覽列選擇系統管理 > 子帳號,單擊子帳號頁面右上方的同步子帳號

      5. 選擇需進行授權的子帳號,在EDAS舊鑒權列單擊管理角色,在左側搜尋並選擇目標角色,將該角色添加到右側已選角色列表中,然後單擊確定

      6. 選擇需進行授權的子帳號,在EDAS舊鑒權列單擊授權應用,在左側搜尋並選擇目標應用,將該應用添加到右側已選應用列表中,然後單擊確定

  • 配置Endpoint

    說明

    如果使用EDAS專有雲企業版,還需要按以下步驟在Cloud Toolkit中配置Endpoint。Endpoint請聯絡EDAS支援人員擷取。

    1. Preference(Filtered)對話方塊的左側導覽列中選擇Appearance & BehaviorEndpoint

    2. Endpoint介面中設定Endpoint,配置完成後,單擊Apply and Close