本仓库将与大家一起完成使用 CNB (cnb.cool) 部署 TKE 的全流程配置。我们将从基础部署流程开始,逐步深入到密钥安全管理和部署审批配置,一起构建出一套安全、规范的持续部署体系。
CNB 除了提供开箱即用的 tke 镜像更新插件,还可直接托管打包好的镜像,tke 通过内网拉取镜像,高效、稳定(国内/海外地域均可):
| 优势 | 说明 |
|---|---|
| 高速传输 | 拉取镜像使用内网通道,带宽可达 160Mbps |
| 安全访问 | 调度 TKE 更新镜像的 API 默认走内网通道,无需开放 TKE 公网访问 |
代码仓库迁移 CNB 提供迁移工具,可将仓库一键迁移至 CNB 平台 https://cnb.cool/cnb/plugins/cnbcool/code-import
制品库迁移 可将代码打包所依赖的制品,迁移到 cnb 制品库中,避免存在私有依赖无法拉取,导致构建失败 https://cnb.cool/cnb/plugins/cnbcool/artifact-migrate
tke 集群信息 请参考此文档,完成前置条件准备,以及插件参数的收集
首先,让我们把 TKE 集群的镜像更新流程跑通。在 cnb 中,我们可以通过流水线实现这一流程。
CNB 提供了系统插件,只需填写 TKE 集群信息,即可操作集群更新镜像。
📖 插件文档:https://docs.cnb.cool/zh/plugin/#public/tencentcom/deploy-to-tke
参考 Demo 仓库,将构建配置粘贴到自己业务仓库的流水线配置文件 .cnb.yml 中:
📦 Demo 仓库:https://cnb.cool/examples/ecosystem/deploy-to-tke-demo/-/blob/main/.cnb.yml
如需自定义流水线,可优先使用右上角搜索中的 转角遇到 AI,也可查阅下方的流水线语法

📖 流水线语法:https://docs.cnb.cool/zh/build/intro.html
📖 自定义构建环境:https://docs.cnb.cool/zh/build/intro.html
现在,我们已经成功实现了 TKE 集群的镜像更新。 🎉
PS:需注意在 tke 集群中配置拉取 cnb 镜像的凭据,cnb 的凭据可在个人设置中创建访问令牌,或在组织/仓库中创建部署令牌。参考文档
虽然,前面部署到 tke 的流程已经跑通了。但请注意,当前配置存在一个安全隐患:
⚠️ 安全风险:TKE 鉴权信息以明文方式声明在业务代码仓库中,所有开发同学都可以看到这些敏感信息。
这在企业管理中是不可接受的。那么,有没有办法将鉴权密钥与业务开发同学隔离开呢?
在 CNB 中,我们可以通过密钥仓库来解决这个问题。
什么是密钥仓库?
密钥仓库是 CNB 提供的一种独立仓库类型,专门用于安全地托管敏感信息:
通过密钥仓库,你可以将业务仓库与密钥配置隔离。
Step 1:创建密钥仓库并配置密钥
📖 操作指南:https://docs.cnb.cool/zh/repo/secret.html#1-cun-chu-mi-yao-wen-jian
Step 2:配置授权范围
📖 语法说明:https://docs.cnb.cool/zh/repo/secret.html#3-yin-yong-jian-quan-yu-fan-wei-kong-zhi
Step 3:在流水线中引用密钥
在流水线配置中使用 import 语法引用密钥仓库中的密钥:
📖 语法说明: https://docs.cnb.cool/zh/repo/secret.html#2-zhu-ru-wei-huan-jing-bian-liang
PS:可参考以下实践,更进一步防止密钥泄露 防止流水线内泄露 最佳实践
在企业的研发流程中,部署操作通常需要前置各种审批流程——比如需要运维或开发 Leader 的确认。
CNB 的部署流程基于代码的 Release ,你可以:
可对照示例以及效果演示,进行部署审批流程配置,5.3/5.4 中有具体的配置指引
如果审批人是 CNB 平台用户(如运维/开发 Leader),可以直接配置他们为审批人。
📖 配置方法:https://docs.cnb.cool/zh/build/deploy.html#shen-pi-liu-cheng-qian-zhi-tiao-jian-shi-li
如果你的团队使用外部审批平台(如 OA 系统),可以将审批结果同步到 CNB:
原理说明:将外部审批平台的结果存入 Release 的元数据中,并将元数据值配置为部署的前置条件。
💡 提示:Release 和对应的 tag 共用一份元数据。
配置步骤:
| 步骤 | 说明 | 参考文档 |
|---|---|---|
| 1. 配置元数据条件 | 将 Release 元数据设为审批前置条件 | https://docs.cnb.cool/zh/build/deploy.html#yuan-shu-ju-qian-zhi-tiao-jian-shi-li |
| 2. 上传审批结果 | 方式 A:通过插件上传元数据至 tag | https://docs.cnb.cool/zh/plugin/#public/cnbcool/annotations |
| 方式 B:调用 API 上传元数据 | https://api.cnb.cool/#/operations/PutCommitAnnotations |
前序环境已完成部署,如 production 环境依赖 staging 环境进行部署
https://docs.cnb.cool/zh/build/deploy.html#yuan-shu-ju-qian-zhi-tiao-jian-shi-li
当在页面中选择部署 development 环境时,则触发 tag_deploy.development 事件
📦 参考示例:https://docs.cnb.cool/zh/build/deploy.html#zi-ding-yi-bu-shu-liu-shui-xian