本文整体简单介绍下如何通过7个步骤,将容器服务 Swarm 集群平滑迁移到 Kubernetes 集群,并尽量确保迁移期间对业务无影响。

迁移方案



迁移步骤

  1. 标准化Swarm集群
    由运维同学对已有 Swarm 集群做少量运维操作,降低后续 Kubernetes 集群迁移成本和风险
    1. 客户端统一通过SLB访问集群应用,保证后续SLB灰度引流实时生效
      • 如果通过SLB 访问应用,能够快速引流验证或出问题时能实时回滚(SLB控制台变更实时生效)
      • 如果不通过SLB而通过其他方式访问应用,则通过客户端发布或 DNS 回滚(时间区间为:0~48h)无法实时生效,导致对业务产生影响
    2. 统一部署云监控,方便后续监控各ECS运行情况,保证灰度引流生效
  2. 迁移 Swarm 集群配置
    由运维同学完成 Kubernetes 集群创建及集群维度资源配置,降低开发人员应用迁移复杂度
    1. 集群机器资源及网络迁移
    2. Node 标签迁移
    3. VPC 网络互联互通验证
    4. 数据卷迁移
    5. 配置项迁移
  3. 迁移应用配置
    由研发同学基于kompose转换工具完成应用配置迁移
    1. 准备迁移环境
    2. 预处理 Swarm 编排文件
    3. 转换 Swarm 编排文件
    4. 部署 Kubernetes 资源文件
    5. 手动迁移应用配置
    6. 应用启动调试
    7. 迁移应用日志配置
  4. 应用回归测试
    应用在不影响线上流量情况下,由测试人员完成新集群业务功能回归测试
    1. 配置应用测试域名
    2. 测试业务功能
    3. 确认应用日志采集
    4. 确认应用监控
  5. SLB灰度引流
    由运维同学逐步线上引流灰度验证,有问题能够快速回滚
    1. 配置NodePort引流
    2. 灰度引流快速回滚
  6. 客户端流量切换
    由运维人员做客户端或DNS切换,将流量切换至新集群
    1. DNS流量切换:调整DNS解析配置实现流量切换
    2. 客户端流量切换:升级客户端代码或配置实现流量切换
  7. 下线Swarm集群
    由运维人员确认新集群服务访问正常,下线老Swarm集群资源
    1. 确认Swarm集群流量
    2. 下线Swarm集群资源