DevOps 之 Coding CD

2021-10-14 17:24:28 浏览数 (1)

CI 篇见:https://cloud.tencent.com/developer/article/1889086

使用 Coding 在 TKE 上初次部署应用,需要以下步骤:

  • 配置云账号
  • 配置应用
  • 配置部署流程
  • 提单发布

配置云账号

只有配置了 TKE 集群的认证信息,Coding 才有部署的权限,因而使用 Coding CD 功能的第一步是配置云账号。如下图所示,在 Coding 部署控制台导航栏菜单中选择【云账号】,在云账号管理页面选择【绑定云账号】,云账号类型选择腾讯云 TKE,按照指引完成与云账号名下的集群绑定。

add-tke-cluster-account.pngadd-tke-cluster-account.png

NOTE:部署控制台可通过 CODING 团队首页左侧导航栏快速进入,更多帮助见:https://help.coding.net/docs/cd/console.html

配置应用

应用是 CODING CD 中的基本部署单位,Coding 推荐的做法是一个应用对应微服务架构中的一个服务。在 CODING 部署控制台左侧导航栏点击【应用】进入应用页面;接着点击【创建应用】按钮,在弹出的创建应用对话框中输入应用名称,部署方式选择 TKE,然后确认后就创建好一个应用了

add-app-step-2.pngadd-app-step-2.png

如果想在项目中提交发布单执行应用的发布流程,还需要把应用和一个项目进行关联。下面两图展示了如何将应用 order-service 和项目 QCBM 进行关联。

guan-lian-project-1.pngguan-lian-project-1.png
guan-lian-project-2.pngguan-lian-project-2.png

配置部署流程

基于 TCR 的自动触发流程

在配置好云账号以及应用后,可在部署控制台中创建部署流程了。如下图,在应用页面点击 order-service 进入部署流程页面,选择创建流程。在创建部署流程对话框中,可以根据需要选择部署模板。示例 order-service 部署流程选择了空白流程模板。

create-cd-flow.pngcreate-cd-flow.png

在上图点击确认后,进入 order-service 部署流程编辑页面。在【基础配置】里,为流程添加个自动触发器:TCR 个人版仓库触发器。具体来说,点击“添加触发器”后,在触发器类型里选择 “TCR 个人版仓库触发器”,然后选择好区域、命名空间、仓库等信息即可。

cd-trigger.pngcd-trigger.png

接着,点击【基础配置】右边的【添加阶段】按钮,并选择 “部署(Manifest)” 。

add-deploy-manifest.pngadd-deploy-manifest.png

在部署(Manifest)的基础设置中选择上文中配置好的云账号。

manifest-basic-config.pngmanifest-basic-config.png

接下来进行 Manifest 配置,Coding 支持两种 manifest 来源:使用制品输入内容

  • 使用制品

该方式使用事先编写好的,并上传到代码仓库中的部署描述文件。比如,下图中就使用了 order-service 的部署 yaml,该 yaml 位于 Coding 代码仓库 qcbm-deployments 中(可通过链接 https://jishufanganzhongxin.coding.net/public/qcbm/qcbm-deployments/git/files/master/deployments/order-service.yaml 查看)。

manifest-source-git.pngmanifest-source-git.png
  • 输入内容

顾名思义,就是直接输入应用的部署 yaml,如下图所示。

manifest-source-input.pngmanifest-source-input.png

至此,基于 TCR 自动触发的部署流程就配置完成了,按下图的说明保存好配置流程。

save-cd-flow.pngsave-cd-flow.png
基于审批和确认的人工触发部署流程

上一节讲述的 “基于 TCR 的自动触发流程” 适用于开发/测试环境。对于生产环境的部署,一般都很慎重,需要人工审批、部署后验证、以及部署失败后的回滚等操作。本节为 order-service 创建一个新的部署流程,实现人工确认、回滚等功能,具体见下图展示的新流程 order-service-deployment-with-approve。

order-service-deployment-with-approve.pngorder-service-deployment-with-approve.png

在流程配置的第二步,选择 “通用类型” 下的 “人工确认”,如下图:

add-manual-confirm.pngadd-manual-confirm.png

然后添加人工确认信息,包括确认人和确认选项,如下图:

config-manual-confirm.pngconfig-manual-confirm.png

填写好人工确认信息后,再添加一个后续 “部署Manifest” 的步骤并命名为 “部署 GZ-AZ3”,相关配置在上一节中已描述,这里略过。

add-step-deploy-manifest.pngadd-step-deploy-manifest.png

接着,在步骤 “部署 GZ-AZ3” 后添加一个人工确认步骤,命名为 “GZ-AZ3 部署确认”,用于对广州三区部署结果的确认。后续步骤将根据本步骤的确认结果进行判断,如果确认通过,则继续部署广州四区,否则回滚广州三区。

gz-az3-dep-confirm.pnggz-az3-dep-confirm.png

接下来,添加继续部署广州四区的步骤,该步骤的基本配置参见上一节的 “部署Manifest” 的描述。不同的地方在于,本步骤需要根据上一步的确认结果判断是否继续执行。此时,需要为步骤配置 “执行选项”,如下图所示。这里需要勾选 “条件表达式” 并配置下面的表达式语句:

代码语言:txt复制
${#judgment("GZ-AZ3 部署确认") == '部署成功,继续部署 AZ4'}  

当前一步骤 “GZ-AZ3 部署确认” 中,用户选择了选项 “部署成功,继续部署 AZ4”,则上面的表达式为真,将会继续执行本步骤,否则跳过本步。

continue-deploy-az4.pngcontinue-deploy-az4.png

接下来添加回滚步骤,在 “GZ-AZ3 部署确认” 后添加一个新步骤,类型选择 “回滚 (Manifest)”,并命名为“回滚 GZ-AZ3” 。回滚 Manifest 配置下云账号选择 AZ3 TKE 集群对应的云账号(见第二节中的云账号配置);资源类型按实际情况选择,由于 AZ3 使用 K8S Deployment 进行部署的,因而这里选择 deployment;资源名称处选择 order-service(若无此选项,按下图说明手工输入一个资源名称)。

roll-back-basic.pngroll-back-basic.png

继续 “回滚 GZ-AZ3” 的配置。接着就是配置回退版本数和条件表达式。回退版本数为 1 ,表示回滚到上一个版本的 docker 镜像。条件表达的配置如下:

代码语言:txt复制
${#judgment("GZ-AZ3 部署确认") == '部署失败,回滚 AZ3'}  
roll-back-az3.pngroll-back-az3.png

至此,带有审批和人工确认的部署流程已配置完成。

发布单

上面介绍的是如何在部署控制台里配置发布流程,具体进行发布时 coding 都会创建一个发布单记录每次发布的过程以及发布结果,不管是自动触发还是手工触发的部署。

下面介绍下如何在 Coding 里进行手工部署操作。首先,进入 qcbm 项目,在左侧的导航栏找到 “持续部署”,再选择 “Kubernetes”,右侧窗口将会所有 Kubernetes 应用部署流程,如下图所示。

order-fabudan.pngorder-fabudan.png

在上图中,点击 order-service 下的 “发布单” 按钮,进入 order-service 发布单列表,如下图:

order-fabudan-list.pngorder-fabudan-list.png

在上图中,点击 “新建发布” 选择框下的 “新建发布单”,在弹出的对话框中选择部署流程:order-service-deployment-with-approve,其它配置保持默认。

manual-new-fabudan.pngmanual-new-fabudan.png

0 人点赞