业务迁移实录:腾讯云 TKE 集群搭建与全量服务切换

说明:为保护业务信息,本文涉及的业务域名与业务名称均已脱敏。主业务域以 example.com 代称(其下子业务以"业务A / 业务B / 业务C / 官网"代称),待下线旧域以 example.net 代称。集群、网络等基础设施参数均为通用技术信息,可直接参考。

背景

原业务运行在自建/旧 Kubernetes 集群上,随着业务增长与运维成本压力,决定将全部服务迁移至腾讯云 TKE 托管集群,并借此机会统一网关、存储与网络架构。整体迁移分为六个阶段:

  1. 新建云集群
  2. 网络打通(内网互通 + NAT 外网访问)
  3. 搭建基础服务(Higress 网关、CSI-NFS 存储)
  4. 迁移业务服务(中间件 / 前端 / 后端)
  5. 第三方对接调整(IP 白名单、通知 URL)
  6. 旧业务域下线并关闭旧集群

一、新建云集群

集群配置如下:

集群配置
集群名称guangzhou-1(命名规则:<地域>-<编号>
Kubernetes 版本1.32.2
集群规格L5
操作系统TencentOS Server 3.1 (TK4)

网络配置:

网络配置备注
集群 IP 类型IPv4
VPC 网络vpc-xxxxxxx(示例占位)沿用原 VPC,实现内网互通
Kube-proxy 转发模式ipvs大规模 Service 下性能更好
容器网络插件VPC-CNIPod 直接使用 VPC 内网 IP
容器子网172.16.16.0/18在 vpc-xxxxxxx 下新增子网

组件配置:

组件配置备注
存储组件CFS仅 CFS 支持 NFS 存储,需先开通权限
监控组件monitoragentPrometheus 有免费指标但较复杂,暂不启用
网络组件ip-masq-agent用于 Pod 访问外网时的 IP 伪装

选择 VPC-CNI + ipvs 的组合,是为后续 Pod 间流量可控、以及 NFS/网关等基础组件的高可用打底;容器子网单独规划 172.16.16.0/18,与 VPC 已有网段互不冲突。

二、网络打通与外网访问

集群沿用原 VPC,内网天然互通;集群内 Pod 访问公网(如调用第三方接口)则需要 NAT 网关。

  1. 新建传统型 NAT 网关(绑定公网 EIP);
  2. 新建路由表,目标网段 172.16.16.0/18,下一跳选择公网 NAT 网关;
  3. 验证:从 Pod 内 curl 外网地址,确认连通后再进入下一阶段。

三、搭建基础服务

3.1 Higress 网关

Higress 作为集群统一的南北向流量入口,基于 Istio 与 Envoy,兼容 Ingress / Gateway API:

helm repo add higress.io https://higress.cn/helm-charts
helm install higress -n higress-system higress.io/higress --create-namespace --render-subchart-notes

3.2 CSI-NFS 存储

CFS 提供 NFS 协议,需在集群中安装 CSI-NFS 驱动,将 CFS 挂载为 Kubernetes 存储类(StorageClass),供有状态应用(如定时任务日志、中间件数据目录)使用。具体安装步骤参考腾讯云官方文档:NFS 数据卷配置

四、迁移业务服务

4.1 中间件(1 天)

  • xxl-job:在新的 TKE 集群中重新部署工作负载(调度中心与执行器);
  • Kafka:切换到轻量服务器自建实例,不随集群迁移。

4.2 前端应用(1 ~ 1.5 天)

前端迁移有两种方案,需结合实际取舍:

方案优点风险 / 成本
合并所有项目为一个应用资源占用小路由合并有失效风险(但与原实现一致)
每个业务独立域名、独立部署互不影响占用小程序业务域名配额,资源占用多

最终各前端业务通过 EdgeOne 配置 301 重定向,收敛到主业务域下:

业务重定向目标备注
业务A(小程序)301 → service-a.example.com小程序需添加业务域名
业务B(小程序)301 → service-b.example.com小程序需添加业务域名
业务C(小程序)301 → service-c.example.com小程序需添加业务域名
官网301 → www.example.com

4.3 后端测试与预发布环境(0.5 天)

  • 在新集群重新部署工作负载;
  • 先切换测试 / 预发布环境验证,确认无误后再动正式环境。

4.4 后端正式环境、前端正式环境(1 天)

  • 重新部署后端正式工作负载;
  • 前端正式域名切换,各页面配置 301 重定向,平滑过渡。

4.5 数据清洗系统(1 小时)

  • 重新部署工作负载,注意依赖的数据源与定时任务配置保持一致。

五、第三方对接调整(0.5 天)

  1. 通知 URL:原通知回调地址变更,采用 301 重定向兼容旧地址,避免第三方漏改导致回调失败;
  2. NAT 网关 IP 白名单:出口 IP 随 NAT 网关变化,需将新公网 IP 同步给第三方(如酒店渠道商)并更新白名单。

六、旧业务域下线,关闭旧集群(2 周)

  1. *.example.net 全部 301 重定向到 *.example.com 对应页面。由于没有通配符证书,每个子域名都需要单独配置重定向与证书
  2. 观察一段时间确认无异常流量后,关闭旧集群。

建议在重定向生效、旧集群流量归零、且监控无告警后再执行集群关闭,同时保留旧集群快照作为回退手段。

排期与总结

阶段耗时
新建云集群0.5 天
网络打通(NAT)1 天
基础服务(Higress、CSI-NFS)2 天
业务服务迁移4.5 天
第三方对接调整0.5 天
旧业务域下线、关闭旧集群2 周

本次迁移的核心经验:

  • 网络先行:VPC-CNI 直接沿用原 VPC,内网互通零成本;NAT 网关统一出口,便于白名单管理;
  • 网关统一:Higress 作为唯一流量入口,迁移过程中可按域名 / 路由灰度切换,风险可控;
  • 301 平滑过渡:无论前端、通知 URL 还是旧业务域,都用 301 重定向兜底,保证第三方与用户无感;
  • 先验证后切换:测试 / 预发布环境先行,正式环境最后切换,必要时保留旧集群兜底回退。