有奖捉虫:办公协同&微信生态&物联网文档专题 HOT

功能介绍

CODING 持续部署用于把控构建之后的项目发布与部署交付流程。能够无缝对接上游 Git 仓库、制品仓库以实现全自动化部署。在稳定的技术架构、运维工具等基础上,具备蓝绿发布,灰度发布(金丝雀发布),滚动发布,快速回滚等能力。
下文将以一个简单的 Demo 项目为例,演示如何使用 CODING 持续部署控制台将应用发布至腾讯云集群。

前置准备

开启持续部署设置权限,请参见 权限详情
导入 示例代码库。点击了解如何导入或关联外部仓库
Docker 制品仓库,单击了解如何使用项目中的 Docker 制品仓库
一个可被 CODING 持续部署访问的 Kubernetes 集群,单击了解如何申请 腾讯云标准集群
说明:
集群的推荐配置为 8 核 32 GB,需开启公网访问权限。

操作步骤

步骤1:获取并关联云账号

说明:
因使用了腾讯云容器服务,部署后应用将发布至集群,本示例使用的团队账号已在团队设置中心 > 第三方应用中关联 腾讯云账号
单击首页左侧的基础设施,在云账号中绑定腾讯云账号。云账号名称可以自拟,选择地域后将自动获取对应集群。



在集群中新建 命名空间(Namespace) 用于存储自动生成的制品仓库访问凭证,本文中所使用的集群命名为: cd-demo。




步骤2:配置应用

成功添加云账号后,在部署控制台中单击创建应用,填写应用名与选择部署方式。有关于应用的更多介绍,详细说明请参见 应用管理



选择部署到 Kubernetes 集群模板,填写名称与描述后完成创建。




步骤3:初始化项目

此步骤主要用于配置持续部署所涉及的项目文件,默认您已完成前置准备中的导入示例代码库及创建 Docker 制品库。
首先,将本地拟发布的 Docker 制品推送至 CODING 制品仓库,具体操作可参考 Docker




推送至制品仓库后,获取制品的拉取地址(即“操作指引” > “拉取”命令中的镜像路径)并填写至代码仓库中 /k8s/deployment.yaml 中的 image 地址。



接下来需导入云账号的 imagePullSecrets 至代码仓库中。在基础设施 > 云账号中单击查看详情后,复制名称。



粘贴至代码仓库中的 deployment.yaml 文件中,同时在 namespace 参数一栏中填写在上文中所创建的命名空间 cd-demo。



同一层级的 service.yaml 文件中的 namespace 内容也需保持一致。




步骤4:部署流程

在应用中心找到上述步骤 2 创建的应用,点击其名称进入部署流程配置页面,可以为此流程设定:
流程的执行选项(在此示例中保持默认即可)。
部署 Deployment 阶段以及部署 Service 阶段所需制品。
手动或自动触发。
首先配置部署(Manifest)阶段。基础设置选择已绑定的云账号,在 Manifest 来源选择 CODING 代码库,填写相应的路径。



配置部署 Service 阶段时步骤同上,但在文件路径处需选择 k8s/service.yaml 文件。



镜像版本配置默认选择自动获取镜像来源。若设置自定义版本规则,将仅传送特定的 image 版本信息号至集群中。




步骤5:触发器配置

完成部署阶段配置后,您可以使用自动化触发器、手动提交发布单执行部署。

自动触发

基础配置中点选触发器类型,选择 Docker 仓库触发器。当开发人员更新代码仓库并使用 CI 将镜像打包推送至制品库后,Docker 镜像版本的更新将自动触发部署流程并将应用发布至 Kubernetes(TKE)集群,完成后可以在应用中心查看并确认应用是否发布成功。




手动提交发布单

若希望通过手动提交发布单的形式触发部署流程,那么可以将应用(例如本范例的 flaskapp)与项目关联。在应用中心搜索项目名称进行关联:



关联完成后,单击项目中的持续部署 > Kubernetes 手动提交发布单。




步骤6:发布完成

发布成功后,可以查看发布的制品及启动参数及阶段执行详情等信息。



当需要查看某个资源在集群中的运行状态时,单击集群下的工作负载即可查看详情(例如工作负载的 Pod 实例,日志等信息)。



在腾讯云的容器服务中查看工作负载。




配置自动化构建流程

若在后期需要频繁开发项目,能否仅依靠代码推送就能够自动完成发布呢?答案是肯定的。经典的持续交付工作流设计思路如下:
1. 配置持续集成任务,设置监听代码更新后触发。



2. 将项目代码打包成制品后,发布至制品仓库。



3. 持续部署监听到制品版本号更新后,自动发布至集群。