快速开始
功能介绍
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 代码库」,填写相应的路径。
镜像版本配置默认选择自动获取镜像来源。若设置自定义版本规则,将仅传送特定的 image 版本信息号至集群中。
配置部署 Service 阶段时步骤同上,但在文件路径处需选择 k8s/service.yaml
文件。
5. 触发器配置
完成部署阶段配置后,你可以使用自动化触发器、手动提交发布单执行部署。
自动触发
在「基础配置」中点选触发器类型,选择 Docker 仓库触发器。当开发人员更新代码仓库并使用 CI 将镜像打包推送至制品库后,Docker 镜像版本的更新将自动触发部署流程并将应用发布至 Kubernetes(TKE) 集群,完成后可以在应用中心查看并确认应用是否发布成功。
手动提交发布单
若希望通过手动提交发布单的形式触发部署流程,那么可以将应用(如本范例的 flaskapp)与项目关联。在应用中心搜索项目名称进行关联:
关联完成后,点击项目中的「持续部署-Kubernetes」手动提交发布单。
6. 发布完成
发布成功后,可以查看发布的制品及启动参数及阶段执行详情等信息。
当需要查看某个资源在集群中的运行状态时,点击「集群」下的工作负载即可查看详情(如工作负载的 Pod 实例,日志等信息)。
在腾讯云的容器服务中查看工作负载。
配置自动化构建流程
若在后期需要频繁开发项目,能否仅依靠代码推送就能够自动完成发布呢?答案是肯定的。经典的持续交付工作流设计思路如下:
- 配置持续集成任务,设置监听代码更新后触发
- 将项目代码打包成制品后,发布至制品仓库
- 持续部署监听到制品版本号更新后,自动发布至集群
你可以阅读《最佳实践——将 Ruby + 项目发布至腾讯云 TKE》一文了解如何搭建自动化持续交付流水线。
在阅读中是否遇到以下问题?*
您希望我们如何改进?*
如果您希望得到回复,请留下您的邮箱地址。