本文将通过示例项目,演示如何从代码仓库开始,最终将项目自动化发布至集群中。
操作步骤
步骤1:导入示例代码仓库
先在团队创建全功能 DevOps 项目。
![](https://qcloudimg.tencent-cloud.cn/image/document/2283e8de486bb4142027bb7efeda98c8.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/12726a728fcf268efaed2b80763610cd.png)
步骤2:创建持续集成任务
1. 选择项目内左侧产品栏持续集成,单击右上角创建构建计划,选择部署分类下的“推送到 Kubernetes”模板。
![](https://qcloudimg.tencent-cloud.cn/image/document/e8be1bd359b9bcce13a63b820992b8ce.png)
2. 示例仓库中已含有
Dockerfile
文件,因此仅需自定义镜像名称。若制品仓库中没有 Docker 类型仓库,可以在第三步单击页面上的创建新的制品库。![](https://qcloudimg.tencent-cloud.cn/image/document/6fec9da806094577e3bf54b70d5af7d2.png)
3. 创建完成后,前往持续集成设置的触发规则,勾选代码源触发。当 master 分支有代码变更时将自动触发持续集成任务,你也可以配合团队工作流,自定义多种自动触发方式。
![](https://qcloudimg.tencent-cloud.cn/image/document/b7aa9fe2a224ad2bf1cdc3233f6afae0.png)
步骤3:配置目标制品仓库
软件制品是指由源码编译打包生成的二进制文件,不同的开发语言对应着不同格式的二进制文件,这些文件通常可以直接运行在服务器上,用以支撑应用运行。持续集成任务运行成功后,前往制品仓库中就可以查看已推送的制品,您可以参见 Docker 在本地进行镜像推拉。
![](https://qcloudimg.tencent-cloud.cn/image/document/5af705035279e2cd05880dba126a33f7.png)
获取制品仓库的拉取链接。
![](https://qcloudimg.tencent-cloud.cn/image/document/82deaa455cb000c8c224706f46197af7.png)
将制品的拉取地址填写至代码仓库中
/k8s/deployment.yaml
中的 image
参数中。![](https://qcloudimg.tencent-cloud.cn/image/document/fc130a2f30275e497c76d955dac4d56e.png)
步骤4:创建云端容器服务
1. 前往腾讯云 控制台,单击开通容器服务。在集群中新建命名空间(Namespace)用于存储自动生成的制品仓库访问凭证,本文中所使用的集群命名为: cd-demo。
![](https://qcloudimg.tencent-cloud.cn/image/document/201c35d46ba0993a22d8e46f1f64eeda.png)
2. 新建命名空间后,返回 CODING 站点,单击首页左侧的基础设施,在云账号中绑定腾讯云账号。
![](https://qcloudimg.tencent-cloud.cn/image/document/5d4edcfef442fe8ae714cb5b6d89e414.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/5d4edcfef442fe8ae714cb5b6d89e414.png)
3. 成功添加云账号后,在应用中心(旧版)中单击创建应用,填写应用名与选择部署方式。
![](https://qcloudimg.tencent-cloud.cn/image/document/364d2662f8966fe8b33c1a12a4f3d0e0.png)
4. 选择部署到 Kubernetes 集群模板,填写名称与描述后完成创建。
![](https://qcloudimg.tencent-cloud.cn/image/document/94d4463ed5fc58f0c093969bf49247c4.png)
5. 接下来需导入云账号的
imagePullSecrets
至代码仓库中。在基础设施 > 云账号中单击查看详情后,复制名称。![](https://qcloudimg.tencent-cloud.cn/image/document/29c9e56d09ad7f726c496fc22876ca29.png)
6. 粘贴至代码仓库中的
deployment.yaml
文件中,同时在 namespace
参数一栏中填写在上文中所创建的命名空间 cd-demo
。![](https://qcloudimg.tencent-cloud.cn/image/document/795991d6213ac1d260f55ad9e6e17959.png)
同一层级的
service.yaml
文件中的 namespace
内容也需保持一致。![](https://qcloudimg.tencent-cloud.cn/image/document/cebeaa0027e85038b7e3bef133bb8002.png)
步骤5:自动化发布至集群
进入部署流程配置页面,可以为此流程设定:
流程的执行选项(在此示例中保持默认即可)
部署 Deployment 阶段以及部署 Service 阶段所需制品
手动或自动触发
首先配置部署(Manifest)阶段。基础设置选择已绑定的云账号,在 Manifest 来源选择:CODING 代码库,填写相应的路径。
![](https://qcloudimg.tencent-cloud.cn/image/document/0b6eca160a57c5aa92b6f65192208963.png)
配置部署 Service 阶段时步骤同上,但在文件路径处需选择
k8s/service.yaml
文件。![](https://qcloudimg.tencent-cloud.cn/image/document/c92905ecf30f02b191c74098f400f51e.png)
镜像版本配置默认选择自动获取镜像来源。若设置自定义版本规则,将仅传送特定的 image 版本信息号至集群中。
![](https://qcloudimg.tencent-cloud.cn/image/document/1dd1aff9c9f8f7e1b9b766039bee82c3.png)
完成部署阶段配置后,您可以在基础配置中选择触发器类型,选择 Docker 仓库触发器。当开发人员更新代码仓库并使用 CI 将镜像打包推送至制品库后,Docker 镜像的更新将自动触发部署流程,并将应用发布至 Kubernetes(TKE)集群,完成后可以在基础设施页面查看并确认应用是否发布成功。
![](https://qcloudimg.tencent-cloud.cn/image/document/e70b716da4573b1d9b7f0c3cfbaa5f18.png)
步骤6:发布成功
发布成功后,可以查看发布的制品及启动参数及阶段执行详情等信息。
![](https://qcloudimg.tencent-cloud.cn/image/document/1e3f940f1826f4b9f3c21069d4d80a81.png)
当需要查看某个资源在集群中的运行状态时,单击集群下的工作负载即可查看详情(例如工作负载的 Pod 实例,日志等信息)。
![](https://qcloudimg.tencent-cloud.cn/image/document/730e756992e886fb85dd71722ebae0ad.png)
在腾讯云的容器服务中查看工作负载。
![](https://qcloudimg.tencent-cloud.cn/image/document/6c6f458a03c9ae23dc8e65a43f38cc57.png)