本文以Java应用为例,指导您如何使用云效将应用以镜像的方式部署至EDAS的容器服务K8s集群或Serverless K8s集群。

前提条件

部署流程

部署流程
  1. 如果您的应用已经部署在EDAS上,则无需创建新的应用。如果您是第一次部署应用到EDAS,则需要在EDAS控制台创建应用,以便云效将业务代码推送到该应用中。
  2. 在EDAS创建应用完成后,在云效上创建企业并进入流水线FLOW。
  3. 根据EDAS应用类型配置应用集成发布的流水线信息。
  4. 流水线配置完成后,运行流水线完成EDAS应用部署。

步骤一:在EDAS控制台创建应用

如果您未使用过EDAS创建应用,则需要预先在EDAS上创建应用,本文以在容器服务K8s集群中创建一个使用镜像部署的包含两个Pod应用为例。详情请参见在容器服务K8s集群中使用镜像方式部署应用

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

步骤二:在云效创建企业

如果您是第一次使用云效Flow,则需要在云效上创建您的企业。

  1. 登录云效Flow
  2. 设置企业、组织或团队名称并选择使用规模,单击完成创建
    首次登录云效创建企业

步骤三:在云效创建流水线

  1. 登录云效Flow
  2. 流水线Flow页面右上角,单击新建流水线
  3. 选择流水线模板对话框,选择Java · 镜像构建,发布到EDAS Kubernetes,单击创建
    选择流水线模板

    创建完成后,会在页面左下角弹出流水线已创建的弹窗。

步骤四:配置流水线

  1. 创建流水线后会自动在页面右侧弹出添加流水线源面板,配置流水线源信息,配置完成后在面板最下方单击添加
    添加流水线源

    云效中提供的流水线源有3种:代码源JenkinsFlow流水线。本文以代码源作为示例。

    参数 描述
    选择代码源 选择您业务代码所在的代码源。
    说明 不同代码源需要配置的参数不同,请根据实际界面进行配置。
    代码类型 选择JAVA
    代码仓库 选择您的代码仓库地址。
    默认分支 选择代码分支。
  2. 在创建的流水线的构建区域单击Docker镜像构建,然后展开任务步骤镜像构建并推送阿里云
    Docker镜像构建
  3. 配置任务步骤参数,配置完成后在页面右上角单击保存并运行
    镜像构建并推送至阿里云
    参数 描述
    步骤名称 输入您自定义的步骤名称,不修改则显示为默认名称。
    选择授权 选择任务的服务授权,使云效能使用容器镜像服务。
    说明 如果您从未授权过,请先单击新建服务授权,根据跳转完成阿里云RAM授权后再进行相应配置。
    区域 在下拉列表中选择地域。
    仓库 在下拉列表中选择仓库。
    标签 标签为Docker镜像Tag。支持固定参数例如1.0,或者动态参数例如${DATETIME}
    Dockerfile路径 Dockerfile路径为Dockerfile文件相对于代码库根目录所在路径,如META/config/DockerfileDockerfile
    ContextPath ContextPath为docker build命令执行上下文路径。填写相对于代码根目录的路径,如target,如果不填则为Dockerfile文件所在目录。
    不使用缓存 如果选中,Docker Build将使用--no-cache=true参数进行镜像构建。
    构建参数 构建参数为运行时会以-build-arg的形式传递到build命令中的一组参数。单击添加参数可以新增并配置构建参数。
  4. 部署区域单击部署到EDAS K8s。在编辑面板,配置任务信息。
    部署到EDAS K8s
    参数名 说明
    任务名称 自定义的任务名称,不修改则显示为默认名称。
    构建集群 可为任务选择不同的构建集群
    选择授权 选择任务的服务授权,使云效能在EDAS上部署应用。
    说明 如果您从未授权过,请先单击新建服务授权,根据跳转完成阿里云RAM授权后再进行相应配置。
    区域 请参见步骤一:在EDAS控制台创建应用,选择该步骤所创建应用所在的地域。
    应用 请参见步骤一:在EDAS控制台创建应用,选择该步骤所创建的应用。
    镜像 选择步骤3所创建的产出物名称。
    发布批次 选择单批次发布,表示不分批发布;选择批次,如2批,表示按照指定的批次来分批发布。
    分批等待时间 相邻发布批次之间的等待时间。
    分批方式 可选择手动确认自动确认。例如,如果您需在完成第一批发布时先观察发布结果再决定后续操作,则可选择手动确认
    任务插件(可选) 您可以根据需要配置任务插件来发送流水线通知。
    • 钉钉机器人通知插件
      • webhook地址:配置钉钉机器人的webhook地址,钉钉机器人的创建步骤请参见钉钉机器人配置
      • 运行时机:您可以选择任务插件发送通知的时机。
    • 邮件通知
      • 邮件地址:配置需要发送通知的邮件地址。
      • 运行时机:您可以选择任务插件发送通知的时机。
    • Webhook通知插件
      • webhook地址:配置需要发送通知的webhook地址,地址必须公网可访问。
      • 运行时机:您可以选择任务插件发送通知的时机。
  5. 配置完成后在页面右上角单击仅保存保存并运行

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

  1. 配置完流水线后,在流水线页面右上角单击保存并运行,然后在运行配置对话框中选择代码分支后单击运行
    本操作示例中创建的应用拥有2个Pod,并在流水线中配置了分批发布。故在构建任务运行成功后,在新阶段的发布任务中您可在更多的下拉列表执行以下操作:执行流水线
    • 单击终止变更:可终止本次流水线的运行。
    • 单击恢复变更:可继续下一批的发布。
    • 单击发布单详情:可跳转到EDAS控制台查看变更详情。
    • 单击日志:可查看流水线的运行日志。
  2. 单击恢复变更,等待流水线执行完毕。
    流水线执行成功

结果验证

云效显示部署成功后,登录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交流群