本文以Java应用为例,指导您如何使用云效将应用以镜像的方式部署至EDAS。

部署流程

流程图
  1. 如果您的应用已经部署在EDAS上,则无需创建新的应用。如果第一次部署应用到EDAS,则需要在EDAS控制台创建应用,以便云效将业务代码推送到该应用中。
  2. 在EDAS创建应用完成后,需要在云效控制台创建对应的应用,应用的部署方式(例如JAR、WAR和镜像)两边需要一致。
  3. 在云效控制台完成应用创建后,需要使用云效提供的流水线模板创建出应用集成发布的基础流水线。
  4. 基础流水线创建完成后,需要更改流水线中的构建任务。例如:如果您在EDAS控制台使用镜像方式部署应用,那么在该环节您需要将原流水线构建部署任务删掉,添加为供镜像方式部署使用的Java镜像构建。整个流水线运行后,本环节的构建产物将供部署环节发布使用。
  5. 构建任务配置完成后,需要指定上环节(即构建任务环节)构建产物和应用的部署目的地,即应用在EDAS上的区域和应用名称。整个流水线运行成功后,应用成功部署到EDAS上。

步骤一:在EDAS上创建应用

如果您第一次使用EDAS托管应用,需要预先在EDAS上使用Demo应用创建相应的应用。

本文以镜像部署为例,具体操作,请参见在容器服务K8s集群中使用镜像方式部署应用

注意 在EDAS控制台创建应用时使用的部署方式(JAR、WAR和镜像),必须与在云效的流水线设置保持一致。简而言之,在EDAS上使用镜像方式部署,那么在云效设置流水线时,构建环节必须是镜像相关配置。

步骤二:在云效配置应用基本信息

  1. 登录云效控制台
  2. 在顶部菜单栏中选择项目 > 项目列表
  3. 项目列表页面单击右上角的新建项目,然后在弹出的页面中设置项目信息,并单击确定
    项目信息有项目类型、项目名称、权限和项目背景等,请依据实际情况设置。在云效创建项目
  4. 在顶部菜单栏中选择研发 > 应用
  5. 我的应用页签中,单击左上角的创建新应用,然后在创建新应用对话框设置应用基本信息,然后单击创建
    在云效创建应用

步骤三:在云效使用模板构建基础流水线

  1. 在顶部菜单栏中选择研发 > 流水线
  2. 流水线页面单击右上角的新建流水线,在新建流水线对话框设置编程语言和流程模板,然后单击下一步
    选择流水线模板
    参数 描述
    编程语言 选择Java
    模板 选择Java测试、构建、部署到edas
    说明 如果您的应用编程语言非Java,请根据实际情况选择。
  3. 在弹出的流水线配置页面中,进行代码库设置,并单击下一步
    配置代码库
    参数 描述
    代码库类型 选择阿里云Code
    代码仓库 选择您的代码仓库地址。
    分支 选择代码分支。
    别名 代码的别名,后续用于执行组件代码克隆路径,使用数字、字母或下划线(_)。
  4. 在弹出的流水线配置页面中,设置流水线的基本信息如流水线名称、管理员等,并单击创建
    基础流水线创建成功。基础流水线创建成功

步骤四:在云效中配置构建任务

  1. 编辑流水线页面的阶段区域,删除流水线中的构建部署

    以删除构建为例。单击构建,在阶段:构建面板单击删除按钮图标。

    构建示意图
  2. 编辑流水线页面的阶段区域,单击添加图标,在弹出的阶段模板中选择Java镜像构建并单击使用
    选择Java镜像构建示意图
    说明 对于Java应用,EDAS支持镜像、JAR包和WAR包三种方式部署。本例以镜像方式为例,如果您需要采用JAR包或者WAR包方式,需再EDAS侧以JAR和WAR包方式创建应用,并且本步骤中构建模板选择Java JAR/WAR包构建
    添加JAVA镜像构建结果图
  3. 配置构建任务的基本信息。
    1. 在弹出的阶段:新增阶段面板中,自定义设置阶段名称流转配置
      设置阶段名称
  4. 配置构建任务的执行步骤。
    1. 单击任务列表中的具体任务名称。
    2. 任务:Java构建Docker镜像并推送镜像仓库面板的Docker镜像构建上传区域,设置镜像信息。
      配置构建镜像信息
      参数 描述
      步骤名称 保持默认,也可以自定义。
      区域 Docker镜像文件所在的地域。
      仓库 Docker镜像文件所在地址。
      标签 Docker镜像Tag,支持固定参数例如1.0,或者动态参数${DATETIME}。
      Dockerfile路径 Dockerfile相对于代码库根目录所在路径,如META/config/DockerfileDockerfile。该文件云效会自动为您创建,无需自建。
      ContextPath 填写相对于代码根目录的路径,如target,如果不填则为Dockerfile文件所在目录。
      构建参数 组件出参,为本构建环节产生的结果文件,供部署环节使用。

步骤五:在云效部署应用至EDAS

步骤一所创建应用不包含您的任何业务代码,在本环节将应用代码推送至EDAS上。即将EDAS上的应用升级为含有您业务代码的应用。

  1. 编辑流水线页面的阶段区域中,单击添加图标。
  2. 在弹出的阶段模板面板中选择部署到EDAS K8s并单击使用
    选择部署模板
  3. 在弹出的阶段:新增阶段面板中,自定义设置阶段名称流转配置
    设置阶段名称
  4. 单击任务列表中的具体任务名称。
  5. 阿里云EDAS K8s部署面板中设置部署任务信息。
    设置部署信息
    参数 描述
    区域 选择EDAS侧创建应用的所在区域。
    EDAS K8s应用 选择EDAS侧所创建应用的应用名称。
    构建产物 步骤四构建参数产生的结果。
  6. 单击编辑流水线页面右上角的运行
    云效开始依据配置的流水线,将应用部署至EDAS。部署成功

步骤六:结果验证

云效显示部署成功后,在EDAS控制台的变更记录页面查看是否产生应用重新部署的变更记录,并显示成功。

您也单击重新部署的变更记录右侧操作列下的查看,查看变更详情。

重新部署详情

常见问题

  • 如何使用云效以JAR包方式部署应用到EDAS?

    在云效中使用JAR包只能部署应用至EDAS的ECS集群。更多信息,请参见使用云效2020部署Java应用至ECS集群

  • 除Java应用外,其他编程语言能否通过云效部署至EDAS?可以使用哪些部署方式(WAR、JAR和镜像)部署?

    除Java外的其他编程语言可以使用镜像部署方式,通过云效部署至EDAS。

EDAS容器服务K8s和Serverless K8s交流群

如果您在EDAS中使用容器服务K8s集群和Serverless K8s集群过程中有任何疑问或建议,请提交工单,或使用钉钉扫描下面的二维码或搜索钉钉群号23197114加入钉钉群进行反馈。

EDAS K8s/Serverless K8s交流群