logo
0
0
WeChat Login

使用腾讯云 CVM 跳板机更新 K8s 集群

本仓库演示如何在 CNB 流水线中,通过腾讯云 CVM 跳板机安全地更新容器服务 K8s 集群。

适用场景:不希望将 CVM 服务器或 K8s API Server 暴露到公网,全程通过腾讯云内网完成操作。


架构流程图


工作原理

整个流程通过 tcloud-cmd 插件调用腾讯云 Open API,向内网 CVM 跳板机下发命令,由跳板机执行 kubectl 操作更新 K8s 集群,全程无需公网暴露。

📖 插件详细文档:https://cnb.cool/cnb/plugins/tencentcom/tcloud-cmd


使用方式

配置方式见 .cnb.yml 文件。运行结果见 云原生构建 流水线输出。

本 Demo 演示了两种常见的集群更新方式,用户可以在此基础上编写更复杂的步骤:

方式说明
直接更新镜像通过命令直接修改 Deployment 的容器镜像版本
kubectl apply使用仓库中的 busybox-deployment.yaml 定义文件更新 Deployment

前置条件

1. K8s 集群:开通内网访问

腾讯云上正常运行的 K8s 集群,需开通 内网访问 API Server

2. CVM 跳板机:安装必要组件

标准腾讯云 CVM 服务器作为跳板机,需满足:

  • 已安装 自动化助手(购买时默认自动安装)
  • 已安装 kubectl 工具

3. KubeConfig:配置集群访问凭证

跳板机中存储了各个目标集群的 kubeconfig 访问文件,并确认可以正常访问目标 K8s 集群。

# 示例:使用指定 kubeconfig 验证连通性 kubectl --kubeconfig /root/.kube/cls-56jhh1ss-config get nodes

4.(可选)跨 VPC 网络打通

如果跳板机和目标 K8s 集群在不同 VPC 中,可使用腾讯云 对等连接 打通 VPC 网络。

📖 详情参考:对等连接文档

本样例中,跳板机和目标集群分属广州地区两个不同 VPC 子网。