为了能够让存量的ACK专有版集群用户享受到ACK Pro版集群的功能和特性,容器服务平台推出了专有版到ACK Pro版的集群热迁移功能,使您可以动态地迁移ACK专有版集群至ACK Pro版集群。本文介绍如何迁移ACK专有版集群至ACK Pro版集群中。

前提条件

  • 准备一个ACK专有版集群。具体步骤,请参见创建Kubernetes专有版集群
  • 集群的Master节点上已安装云助手。更多信息,请参见云助手概述安装云助手客户端
  • 集群的内网SLB实例规格的配置为slb.s1.small及以上。
  • 已将管控面组件(API Server、Kube Controller Manager、Cloud Controller Manager、Scheduler)和其他kube-system中的DaemonSet之外的Pod驱逐到Worker节点上。管控面组件在迁移之后会被托管的组件所替代。
  • 创建一个OSS的存储空间(Bucket)。具体步骤,请参见创建存储空间

注意事项

  • 迁移ACK专有版集群至ACK Pro版集群为白名单功能,请提交工单申请使用该功能。
  • 请确保您的ACK专有版集群的Kubernetes版本在1.16及以上。如不满足该条件,请升级您的集群版本。关于如何升级集群的Kubernetes版本的具体步骤,请参见升级ACK集群K8s版本
  • 如果集群的内网SLB的配置是共享版,则需要至少升级其到slb.s1.small才能进行集群迁移。关于如果升级SLB实例规格,请参见按量付费实例升降配
  • 部分ACK专有版老集群仍使用公网SLB访问API Server,此类集群迁移到ACK Pro版后无法继续通过公网SLB访问,需要手动切换为EIP模式(将EIP绑定到API Server内网SLB),以支持公网访问API Server。关于手动切换EIP模式的具体操作,请参见控制集群API Server的公网访问能力
  • 迁移完成后,需注意:
    • 原有专有版集群的Master节点将脱离集群(状态变为未知),终止使用。
    • 不支持将ACK Pro版集群回退至专有版集群。
    • 原有专有版集群的Master节点的ECS实例不会被自动删除,请注意及时删除不需要的ECS实例。

热迁移ACK专有版集群至ACK Pro版集群

  1. 登录容器服务管理控制台
  2. 在控制台左侧导航栏中,单击集群
  3. 在集群列表页面,找到需要迁移的专有版集群,然后在操作列下单击迁移至Pro版
  4. 迁移至Pro版对话框中,单击前置检查,跳转至容器智能运维控制台,完成迁移前的前置检查。
    前置检查.png
    1. 在容器智能运维控制台的迁移检查页面,单击执行迁移检查
    2. 迁移检查面板中,选中注意事项中的内容,然后单击执行检查
    迁移检查完成后:
    • 如果检查未通过,则可以在迁移检查页面,查看详情进行处理。
    • 如果检查通过,则可以直接进行下一步。
  5. 迁移至Pro版对话框中,完成ACK专有版集群迁移至ACK Pro版集群的授权操作,然后单击确定
    迁移ACK专有版集群至ACK Pro版集群,您需要添加以下迁移所需的权限。
    1. 迁移至Pro版对话框中,单击访问控制台(RAM)
      migrate
    2. 在Master RAM角色的详情页,单击以k8sMasterRolePolicy开头的授权策略名称。
      master role
    3. 在目标授权策略的详情页的策略内容页签,单击修改策略内容
    4. 修改策略内容面板中的Statement字段中补充以下策略内容,然后单击确定
      ,
              {
                  "Action": [
                      "oss:PutObject",
                      "oss:GetObject"
                  ],
                  "Effect": "Allow",
                  "Resource": [
                      "acs:oss:*:*:<YOUR_BUCKET_NAME>/*"  # 需要将策略中的<YOUR_BUCKET_NAME>替换为您在迁移对话框中所指定的Bucket名称。
                  ]
              }
      添加策略后的示例如下图。策略
    完成迁移之后,成功迁移的ACK专有版集群的集群类型ACK专有版自动变更为ACK Pro版,原有的Master节点状态会变成未知。查看节点状态步骤如下:
    1. 在集群列表页面,单击目标集群右侧操作列下的详情
    2. 在集群管理左侧导航栏中,选择节点管理 > 节点
    3. 在节点列表的角色/状态列下,查看Master节点的状态。

删除专有版集群热迁移后的Master节点

在完成迁移专有版集群至ACK Pro版集群后,您可以自行将Master节点从集群中删除。目前ACK暂时不支持从控制台直接删除Master节点,您可以通过kubectl命令方式删除Master节点。

在执行命令前,请确保您可以使用kubectl命令连接集群。关于如何使用kubectl命令连接集群的具体操作,请参见通过kubectl工具连接集群

  1. 执行以下命令查看需要删除的Master节点名称。
    kubectl get node | grep master
  2. 执行以下命令删除目标Master节点。
    kubectl delete node <MASTER_NAME>
    说明 将<MASTER_NAME>替换为上步中查询到的Master节点名称。

后续步骤

若ACK专有版集群已安装共享GPU基础版,在迁移至ACK Pro版集群后,需要将共享GPU基础版升级为共享GPU专业版。具体操作,请参见在ACK Pro版集群中将共享GPU基础版升级为共享GPU专业版