DevOps 理念被越来越多的企业采纳,DevOps 是 Development 和 Operations 的组合词,代表着重视“软件开发人员(Dev)”和 “IT 运维技术人员(Ops)”之间沟通合作的文化,旨在透过自动化“软件交付”和“架构变更”的流程,使得构建、测试、发布软件的过程能够更加地快捷、频繁和可靠。在云原生时代,使用 Devops 思维可实现敏捷开发,本文将介绍和实践专为云原生打造的 TKE 容器 DevOps 服务,实现从代码提交时触发镜像自动构建,镜像构建成功时触发自动部署流程将应用部署、更新到 TKE 集群中的一整套无缝衔接的 Devops 流水线。
TKE 容器 DevOps 是 容器服务 TKE、容器镜像服务 TCR 和 CODING DevOps服务紧密结合,面向容器业务场景,具备自动化代码编译、容器镜像构建、镜像推送及应用部署等功能,为客户提供强大的一站式云原生 DevOps 服务。
TKE 容器 DevOps 服务贯穿了整个应用开发和部署流程的全生命周期管理,实现了从更新代码到应用部署、更新的自动化,业务流程如下图所示:
TKE 容器 Devops 功能提供了强大的云原生 Devops 服务,本文将介绍 TKE 容器 Devops 如何实现从源码更新到业务发布的整套自动化流程。
登录容器服务控制台 ,选择左侧导航栏中的 DevOps**,单击立即使用**。
在 Coding 团队主页面创建一个测试项目和测试代码仓库。关于 Coding 代码托管介绍请参见 代码托管介绍。
说明:构建计划是持续集成的基本单元,可以通过选择构建计划模板快速创建一个构建计划,详情请参见 快速开始持续集成。
说明:Coding DevOps 和 TCR 实例之间内网互通,镜像 push 默认使用内网传输,无需另外配置。
使用构建模板生成的构建项目,也可通过在构建计划详情页中选择项目名称,进入项目详情页后单击设置菜单对构建详情进行自定义配置,构建计划配置页面。
如何选择云账号类型请参见 云账号 官方文档,添加配置部署云上资源的访问云账号信息,可以选择腾讯云 TKE或者Kubernetes类型的云账号,输入相关认证配置添加云账号,本文以选择Kubernetes为例介绍如何配置云账号。
关于 Coding 应用与项目相关说明请参见 应用与项目 和 流程配置,本文将介绍配置应用和流程过程中的关键配置项。
注意:本示例仅使用简单的 Deployment YAML 部署到 Kubernetes 集群,使用了默认的滚动部署(RollingUpdate)更新策略。实际上,可以借助 Nginx-ingress / Istio 等工具配置更高级的更新策略,如蓝绿发布、金丝雀、A / B 测试等,具体使用方法可参见 蓝绿发布 、Nginx-ingress 实现自动化灰度发布、持续部署 + TKE Mesh 灰度发布实践。
apiVersion: apps/v1
kind: Deployment
metadata:
name: devops-app
spec:
replicas: 2
selector:
matchLabels:
app: devops-app
template:
metadata:
labels:
app: devops-app
spec:
containers:
- image: xxx-test.tencentcloudcr.com/xxx-test/jokey-test # 示例镜像地址
name: devops-app
ports:
- containerPort: 5000
imagePullSecrets: # 私有仓库访问凭证配置
- name: tcr-secret # 访问凭证 secret
其中,spec.template.spec.containers.*.image
的镜像地址字段包含在 Coding 的转换匹配规则中,关于转换匹配规则的说明可参见 在 manifest 中绑定制品。
说明:TKE 拉取 TCR 私有仓库镜像有两种方式:
- 在 TCR 支持区域内可配置 TKE 免密拉取 TCR 容器镜像,关于 TCR 支持区域请参见 支持地域,关于如何配置可参见 TKE 集群使用 TCR 插件内网免密拉取容器镜像。
- 手动配置 TKE 拉取 TCR 私有仓库镜像的访问凭证,配置方式可参见 TKE 配置私有仓库访问示例 。
自定义的 Service Manifest YAML 示例:
apiVersion: v1
kind: Service
metadata:
labels:
app: devops-svc
name: devops-svc
spec:
ports:
- port: 5000
protocol: TCP
selector:
app: devops-app
关联项目和应用配置可参见 项目和应用关联。
提单发布使用和配置请参见 新建发布单。更多关于 Coding 持续部署的详细介绍请参见 持续部署介绍。
在项目代码文件中修改添加如下图所示的 v2 API 代码后提交 master 分支:
由于持续集成中的构建计划使用了 “代码更新时自动执行” 的事件触发配置,了解相关触发配置请参见 触发规则。当提交修改的代码时,会自动触发关联的构建计划执行。
如果为持续集成配置企业微信 Webhook 通知,企业微信也会收到相应的即时通知消息。
当构建计划生成 Docker 镜像制品时,又会自动触发关联的持续部署流程,将新的镜像应用更新到 TKE 集群中。
如果部署流程有配置企业微信通知的话,当部署流程任务完成时,会收到对应的企业微信部署完成通知。
此时,可以在 TKE 中看到已经成功更新了工作负载,如下图所示:
从测试验证结果可以看出,我们在 TKE 中实现了从源码更新到业务发布的整套 DevOps 流程。
本页内容是否解决了您的问题?