全部产品
Search
文档中心

企业级分布式应用服务 EDAS:使用Cloud Toolkit插件单批发布应用(K8s)

更新时间:Aug 01, 2023

您在本地完成应用的开发、调试和测试后,可以在IntelliJ IDEA中安装Cloud Toolkit插件实现EDAS应用的快速部署。本文档将介绍如何在IntelliJ IDEA中安装Cloud Toolkit,并快速部署应用到容器服务K8s集群。

前提条件

步骤一:安装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

步骤三:部署应用到容器服务K8s集群

  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