本文整体简单介绍下如何通过6个步骤,将自建Kubernetes集群平滑迁移到阿里云Kubernetes集群,并尽量确保迁移期间对业务无影响。

迁移方案

迁移方案

迁移步骤

  1. 阿里云Kubernetes集群资源配置

    由运维同学完成阿里云Kubernetes集群创建及集群维度资源配置,降低开发人员应用迁移复杂度。具体步骤请参见创建 Kubernetes 集群

    集群创建和配置过程中,以下配置项为必选。

    • 集群模版:你可以根据业务需要选择以下集群模板。
      • 标准专有集群

        Kubernetes集群的Master和Worker由用户创建并管理,对集群享有完整的控制能力。您需要承担Master和Worker的资源费用。

      • 标准托管集群

        Kubernetes集群的Master由容器服务托管,您只需创建并管理Worker,免Master运维。您需要承担Worker的资源费用。

    • 操作系统:您可以根据需要选择操作系统。
      • 推荐您使用阿里云Kubernetes集群默认的操作系统,CentOS7.6或AliyunLinux 2.1903。
      • 若您对系统内核版本有要求,可使用自定义镜像,请参见使用自定义镜像创建ACK集群
    • 专有网络:您需要设置VPC和交换机信息。
    • 配置 SNAT:您需要为专有网络配置SNAT。
    • 公网访问:您需要使用EIP暴露API Server。
    • 云监控插件:您需要在ECS节点上安装云监控插件。
    • 日志服务:您需要安装日志服务插件。
  2. 数据迁移
    • 数据库迁移
      1. 创建RDS数据库。
      2. 配置数据库白名单。
      3. 配置PrivateZone 。

        通过PrivateZone可以将数据库域名解析到RDS域名,减少应用改造。

      4. 迁移MySQL数据

        通过DTS迁移MySQL数据,支持全量、增量、双向同步。具体步骤请参见从自建MySQL迁移至RDS MySQL

    • 存储迁移
      1. 创建OSS存储空间。
      2. 创建Bucket。
      3. 迁移存储数据。

        使用ossimport工具把存储在服务器本地、第三方云存储(S3、Azure、腾讯COS等)中的数据批量迁移到OSS。具体步骤请参见说明及配置

    • 镜像迁移
      1. 创建ACR容器镜像仓库。
      2. 设置镜像服务访问凭证。
      3. 迁移镜像数据。

        使用sync-repo快速将容器镜像批量迁移至ACR容器镜像仓库服务。具体步骤请参见通过 image-syncer 工具迁移容器镜像

  3. 应用配置迁移

    由运维或者研发同学基于velero工具完成集群或者应用配置迁移。具体步骤请参见Kubernetes应用迁移

    1. 准备迁移环境
      1. 安装Velero客户端
      2. 创建OSS Bucket
      3. 创建RAM账号并生成AccessKey
      4. 部署Velero服务端
    2. 在自建Kubernetes集群备份应用
      • 无PV数据的应用备份
      • 有PV数据的应用备份
    3. 在阿里云Kubernetes集群恢复应用
      1. 创建StorageClass
      2. 恢复应用
    4. 更新应用配置
      • 更新镜像地址
      • 优化服务暴露方式
      • 适配存储盘挂载方式
    5. 调试并启动应用
  4. 应用回归测试
    在不影响线上流量情况下,由测试人员完成阿里云Kubernetes集群业务功能回归测试。
    1. 配置应用测试域名
    2. 测试业务功能
    3. 确认应用日志采集
    4. 确认应用监控
  5. 客户端流量切换
    由运维人员做DNS切换,将流量切换至阿里云Kubernetes集群。
    1. DNS流量切换:调整DNS解析配置实现流量切换。
    2. 客户端流量切换:升级客户端代码或配置实现流量切换。
  6. 下线自建Kubernetes集群
    由运维人员确认阿里云Kubernetes集群服务访问正常后,下线自建Kubernetes集群资源。
    1. 确认阿里云Kubernetes集群流量正常
    2. 下线自建Kubernetes集群资源
    3. 清理OSS Bucket中的备份文件