0
点赞
收藏
分享

微信扫一扫

怎么使用云效进行持续集成和部署(K8s)

应用在不断迭代过程中,需要持续集成(CI)和持续部署(CD),通过自动化的构建集成、测试和循环部署,实现快速交付高质量产品并降低人力成本。本文介绍使用云效2020完成应用的持续集成和部署。

前提条件

  • 在EDAS控制台已经部署应用,具体操作步骤,请参见​​在容器服务K8s集群中使用JAR包或WAR包部署应用​​。
  • ​​开通云效2020​​
  • 将业务代码上传至代码库。
  • 云效支持的代码库,请参见​​代码源​​。
  • 业务代码中须包含应用的Dockerfile文件,具体制作步骤,请参见​​构建仓库与镜像​​。

背景信息

使用云效2020实现应用的持续集成和部署,根据您期望的部署环境不同,有以下两种场景:

  • 部署到EDAS ECS环境:只能使用JAR包或者WAR包构建、部署。示例文档,请参见​​使用云效2020部署Java应用至ECS集群​​。
  • 部署到EDAS K8s环境:只能使用镜像构建、部署。


说明 在EDAS K8s环境部署应用时,根据不同应用类型,包含JAR包、WAR包和镜像3种部署方式;在云效2020侧持续集成和部署应用到EDAS K8s环境时,只能以镜像方式构建和部署。

使用云效2020实现应用的持续集成和部署,您只需要将开发好的新版本应用代码提交到代码库,云效流水线Flow会监听代码事件,当满足触发事件时会触发流水线运行,部署新版本应用到EDAS K8s环境。

怎么使用云效进行持续集成和部署(K8s)_持续集成

代码开发与提交一般由开发人员执行,本文不做介绍,本文仅介绍在云效流水线Flow侧如何创建流水线,并配置代码源、镜像仓库、部署对象和发布策略等操作流程。

步骤一:在云效创建企业

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

  1. 登录​​云效Flow​​。
  2. 设置企业、组织或团队名称并选择使用规模,单击完成创建怎么使用云效进行持续集成和部署(K8s)_docker_02

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

  1. 登录云效Flow。
  2. 在左侧导航栏,单击我的流水线,然后单击右上角的新建流水线
  3. 选择流水线模板对话框,在左侧单击Java,在右侧选择Java · 镜像构建,发布到EDAS Kubernetes,然后单击创建

  4. 怎么使用云效进行持续集成和部署(K8s)_云原生_03

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

  6. 流水线创建完成后,自动跳转到流水线配置页面。

步骤三:配置流水线

  1. 添加代码源。
  1. 在流水线的区域,单击添加代码源
  2. 添加流水线源面板,配置流水线源相关信息,然后单击添加
    怎么使用云效进行持续集成和部署(K8s)_docker_04
    云效中提供的流水线源有3种:代码源JenkinsFlow流水线。本文以代码源作为示例。


参数

描述

选择代码源

选择您业务代码所在的代码源,本示例以阿里云Code为例。

说明 不同代码源需要配置的参数不同,请根据实际界面进行配置。

代码仓库

选择您的代码仓库。

默认分支

选择代码分支。

开启代码源触发

开启代码源触发功能,将Webhook添加到代码仓库,云效流水线Flow会监听代码事件,满足条件时触发流水线运行。

阿里云Code包含以下两种触发事件:

  • 代码提交: 从本地Push分支到远程分支(或在代码管理平台的Web端进行文件修改),云效流水线Flow会将Push的目标分支与触发分支进行匹配,如果匹配成功,则会触发流水线,并使用Push的目标分支作为流水线运行时使用的分支。
  • TAG创建:从本地Push Tag到服务端Tag(或在代码管理平台的Web端进行tag创建),云效流水线Flow会将Push的目标Tag名称与触发分支进行匹配,如果匹配成功,则会触发流水线,并使用目标Tag作为流水线运行时使用的代码版本。


如果使用的是其他代码仓库,可能会涉及到其他触发事件。更多触发事件的信息,请参见触发事件与触发分支。

Docker镜像构建。

  1. 在流水线的构建区域,单击Docker镜像构建,然后展开任务步骤镜像构建并推送阿里云怎么使用云效进行持续集成和部署(K8s)_云原生_05
  2. 配置任务步骤参数,配置完成后在页面右上角单击保存并运行怎么使用云效进行持续集成和部署(K8s)_代码库_06


  1. 参数

    描述

    步骤名称

    输入您自定义的步骤名称,不修改则显示为默认名称。

    选择授权

    选择任务的服务授权,使云效能使用容器镜像服务。

    说明 如果您从未授权过,请先单击新建服务授权,在云资源授权页面单击同意授权。

    地域

    在下拉列表中选择地域。

    仓库

    在下拉列表中选择仓库。

    标签

    标签为Docker镜像Tag。支持固定参数例如1.0,或者动态参数例如${DATETIME}

    Dockerfile路径

    Dockerfile路径为Dockerfile文件相对于代码库根目录所在路径,如META/config/Dockerfile或Dockerfile。

    ContextPath

    ContextPath为docker build命令执行上下文路径。填写相对于代码根目录的路径,如target,如果不填则为Dockerfile文件所在目录。

    不使用缓存

    如果选中,Docker Build将使用--no-cache=true参数进行镜像构建。

    构建参数

    构建参数为运行时会以-build-arg的形式传递到build命令中的一组参数。单击添加参数可以新增并配置构建参数。


部署到EDAS K8s环境。

  1. 部署区域,单击部署到EDAS K8s
  2. 编辑面板配置任务信息,然后单击右上角保存并运行怎么使用云效进行持续集成和部署(K8s)_持续集成_07

参数名

说明

任务名称

自定义的任务名称,不修改则显示为默认名称。

构建集群

可为任务选择不同的构建集群。

选择授权

选择任务的服务授权,使云效能在EDAS上部署应用。

说明 如果您从未授权过,请先单击新建服务授权,根据跳转完成阿里云RAM授权后再进行相应配置。

地域

选择EDAS侧所创建应用所在的地域。

应用

选择EDAS侧所创建的应用。

镜像

选择Docker镜像构建所创建的产出物名称。

发布策略

支持分批发布灰度发布,本示例以分批发布为例。

发布批次

选择单批次发布,表示不分批发布;选择批次,如2批,表示按照指定的批次来分批发布。

本示例以2批为例。

分批等待时间

相邻发布批次之间的等待时间。

分批方式

可选择手动确认自动确认。例如,如果您需在完成第一批发布时先观察发布结果再决定后续操作,则可选择手动确认

任务插件

您可以根据需要配置任务插件来发送流水线通知。

  • 钉钉机器人通知插件
    • webhook地址:配置钉钉机器人的webhook地址,钉钉机器人的创建步骤,请参见钉钉机器人配置。
    • 运行时机:您可以选择任务插件发送通知的时机。
  • 邮件通知
    • 邮件地址:配置需要发送通知的邮件地址。
    • 运行时机:您可以选择任务插件发送通知的时机。
  • Webhook通知插件
    • webhook地址:配置需要发送通知的webhook地址,地址必须公网可访问。
    • 运行时机:您可以选择任务插件发送通知的时机。


步骤四:代码库配置Webhook

在代码库添加云效流水线Flow的代码源触发功能生成的Webhook地址,云效流水线Flow会监听代码事件,当满足触发事件时会触发流水线运行。

本文使用阿里云Code作为代码库,在代码库配置Webhook的步骤仅作参考,其他代码库请以实际为准。

  1. 登录阿里云Code,单击目标项目。
  2. 在左侧导航栏单击设置
  3. 在左侧导航栏单击WebHooks
  4. WebHooks页面,设置Webhook地址并选中推送事件,然后单击增加WEBHOOKS怎么使用云效进行持续集成和部署(K8s)_阿里云_08

结果验证

  1. 开发者上传应用新版本代码到代码库。
  2. 云效流水线Flow监听代码事件,当满足触发事件时会触发流水线运行。在本示例流水线中配置了分批发布。故在构建任务运行成功后,您可在部署任务的区域执行以下操作:
  • 终止变更:可终止本次流水线的运行。
  • 恢复变更:可继续下一批的发布。
  • 当前发布单详情地址:可跳转到EDAS控制台查看变更详情。
  • 日志:可查看流水线的运行日志。
  1. 第一批发布完成后,您可以先验证新版本应用。验证无误后,单击恢复变更,继续下一批次的发布。您也可以单击当前发布单详情地址,在EDAS控制台的变更记录页面单击开始下一批,继续下一批次的发布。

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

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

 关于我们

了解更多关于云效DevOps的最新动态,可微信搜索关注【云效】公众号;

彩蛋:公众号后台回复【指南】,可获得《阿里巴巴DevOps实践指南》&《10倍研发效能提升案例集》;

看完觉得对您有所帮助别忘记点赞、收藏和关注呦

怎么使用云效进行持续集成和部署(K8s)_代码库_09

举报

相关推荐

0 条评论