全部产品
云市场

使用 Cloud Toolkit 插件快速部署应用到容器服务 K8s 集群

更新时间:2019-08-20 20:52:15

您在本地完成应用的开发、调试和测试后,可以在 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 安装。

      安装插件配置

    • Windows 系统:在左侧导航栏选择 Plugins,搜索 Alibaba Cloud Toolkit,并单击 Install 安装。

      安装插件配置

  3. 在 IntelliJ IDEA 中插件安装成功后,重启 IntelliJ IDEA,您可以在工具栏看到 Alibaba Cloud Toolkit 的图标(Alibaba cloud toolkit logo)。

步骤二:配置 Cloud Toolkit 账号

在安装完 Alibaba Cloud Toolkit 后,您需使用 Access Key ID 和 Access Key Secret 来配置 Cloud Toolkit 的账号。

  1. 启动 IntelliJ IDEA。

  2. 单击 Alibaba Cloud Toolkit 的图标(),在下拉列表中单击 Preference…,进入设置页面,在左侧导航栏选择 Alibaba Cloud Toolkit > Accounts

  3. Accounts 界面中设置 Access Key IDAccess Key Secret,然后单击 OK

    注意

    1. 如果您使用子账号的 Access Key ID 和 Access Key Secret,请确认该子账号至少拥有部署应用的权限,具体操作方法请参见应用列表获取不到应用

    2. 如果您是 EDAS 专有云企业版用户,还需配置 Endpoint 才能正常使用 Cloud Toolkit 功能。

    配置插件账号

    • 如果您已经注册过阿里云账号,在 Accounts 界面中单击 Get existing AK/SK,进入阿里云登录页面。用已有账号登录后,跳转至安全信息管理页面,获取 Access Key IDAccess Key Secret

    • 如果您还没有阿里云账号,在 Accounts 界面中单击单击 Sign up,进入阿里云账号注册页面,注册账号。注册完成后按照上述方式获取 Access Key IDAccess Key Secret

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

  1. 在 IntelliJ IDEA 上单击 Cloud Toolkit 的图标(),在下拉列表中选择 Deploy to EDAS -> EDAS for Kubernetes Application

    或在 IntelliJ IDEA 上打开 Run/Debug configurations 对话框,展开 Templates 选项,选择 EDAS on Alibaba Cloud -> EDAS for Kubernetes Application

  2. Deploy to EDAS 对话框配置应用部署参数。

    部署应用

    1. 在配置页面中根据您的实际需求选择应用的 RegionNamespaceApplication

      • Region:应用所在地域。
      • Namespace:应用所在命名空间。
      • Application:应用名称。

      注意:如果在应用列表中获取不到应用,请参见应用列表获取不到应用进行操作排查。

    2. 设置部署方式,可选的部署方式由您在控制台第一次部署的方式决定。

      • 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 的下拉列表选择需要部署的镜像。
    3. 单击 Advanced 进入高级部署参数设置页签,并配置 Application Environment、Startup Command、Environments、Persistence、Storage 和 Appcalition Management 等参数。详细的高级部署参数请参见 DeployK8sApplicationRequest

      Advanced

      • Application Environment:设置应用运行环境信息,多次重复部署时需要重新填写PackageVersion。
      • Startup Command:设置启动命令信息,详细的部署参数请参见 DeployK8sApplicationRequest
      • Environments:设置部署环境变量信息,详细的部署参数请参见 DeployK8sApplicationRequest中的 Envs 部分。
      • Persistence:设置持久化存储。
      • Storage:设置本地存储,详细的部署参数请参见 DeployK8sApplicationRequest
      • Application Management:设置应用生命周期管理。

        • Poststart 脚本:一种容器钩子。该钩子在容器被创建后立刻触发,通知容器它已经被创建。该钩子不需要向其所对应的 hook handler 传入任何参数。如果该钩子对应的 hook handler 执行失败,则该容器会被杀死,并根据该容器的重启策略决定是否要重启该容器。参考 Container Lifecycle Hooks

        • PreStop 脚本:一种容器钩子。该钩子在容器被删除前触发,其所对应的 hook handler 必须在删除该容器的请求发送给 Docker daemon 之前完成。在该钩子对应的 hook handler 完成后不论执行的结果如何,Docker daemon 会发送一个 SGTERN 信号量给 Docker daemon 来删除该容器。参考 Container Lifecycle Hooks

        • Liveness 脚本:一种探测容器状态的探针,探测应用是否处于健康状态。如果不健康,则删除重建容器。参考 Pod Lifecycle

        • Readiness 脚本:一种探测容器状态的探针,探测应用是否启动完成并且处于正常服务状态。如果不正常,则更新容器的状态。参考 Pod Lifecycle

  3. 单击 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 任务即可:

  1. 增加一个在父工程 carshop 中执行 mvn clean install 的 Maven 任务;
  2. 增加一个在子模块 itemcenter 中执行 mvn clean package Maven 任务。

Maven 构建任务的管理

在 IntelliJ IDEA 中安装的 Cloud Toolkit 内可以部署 Maven 的构建任务。您也可以在 Deploy to EDAS 的配置页面的 Before launch 区域来添加、删除、修改和移动 Maven 构建任务。

管理 maven 构建任务

在添加 Maven 构建任务编辑框中,您可以单击右侧的文件夹按钮选择当前工程的所有可用模块,并在 Command line 中编辑构建命令。

编辑 Maven 任务编辑框

常见问题

应用列表获取不到应用

通常出现这种情况为使用子账号来部署应用,且子账号没有同步到 EDAS 系统或者没有进行正确授权,从而导致在应用列表下拉框中看不到应用。您可以通过 RAM 授权或 EDAS 子账号授权来确保子账号已经同步到 EDAS 并且得到授权。

RAM 授权

该授权方式可使子账号访问 EDAS 的所有资源。

  1. RAM 控制台左侧导航栏中选择人员管理 >用户
  2. 用户页面上找到需要授权的子用户,单击操作列中的添加权限
  3. 添加权限面板的选择权限区域中,搜索 AliyunEDASFullAccess 权限,单击权限策略将其添加至右侧的已选择列表中,然后单击确定
  4. 添加权限授权结果页面上,查看授权信息摘要,并单击完成
  5. 使用主账号登录 EDAS 控制台,在左侧导航栏选择系统管理 > 子账号,单击子账号页面右上角的同步子账号

EDAS 子账号授权

该授权方式可使子账号细粒度授权访问 EDAS 的资源。

  1. 使用主账号登录 EDAS 控制台
  2. 在左侧导航栏选择系统管理 > 角色,单击角色页面右上角的创建角色
  3. 输入一个角色名称,在可选权限区域框中,选择应用管理 > 应用列表 > 基本信息 > 部署应用,单击添加将部署应用角色添加到已选权限,然后单击确定
  4. 在左侧导航栏选择系统管理 > 子账号,单击子账号页面右上角的同步子账号
  5. 选择需进行授权的子账号,在操作列单击管理角色,在左侧穿梭狂中搜索并选择上面创建的角色,将该角色添加到右侧已选角色列表中,然后单击确定
  6. 选择需进行授权的子账号,在操作列单击授权应用,选择应用添加到右侧列表进行授权,然后单击确定

配置 Endpoint

说明:如果使用 EDAS 专有云企业版,还需要按以下步骤在 Cloud Toolkit 中配置 Endpoint。Endpoint 请联系 EDAS 技术支持获取。

  1. Preference (Filtered) 对话框的左侧导航栏中选择 Appearance & BehaviorEndpoint

  2. Endpoint 界面中设置 Endpoint,配置完成后,单击 Apply and Close

问题反馈

如果您在使用 Cloud Toolkit 过程中有任何疑问,欢迎您扫描下面的二维码加入钉钉群进行反馈。