1. 创建一个OSS的存储空间(Bucket)【已完成】

OSS Bucket 名称:yunwei-ack

集群迁移过程中,会使用你所指定的OSS bucket作为ETCD数据迁移的缓存,该举动会产生少量费用,敬请注意。迁移完毕后我们将清理数据以免产生额外费用。

  1. 请确保已跳转至访问控制台(RAM)为当前集群添加授权策略,详情请查看详细操作步骤。【已完成】
,
    {
      "Action": [
          "oss:PutObject",
          "oss:GetObject"
      ],
      "Effect": "Allow",
      "Resource": [
          "acs:oss:*:*:yunwei-ack/*"  
      ]
    }
  1. 已将管控面组件(API Server、Kube Controller Manager、Cloud Controller Manager、Scheduler)和其他kube-system中的DaemonSet之外的Pod驱逐到Worker节点上。管控面组件在迁移之后会被托管的组件所替代。【已完成】

  2. 迁移检查【已完成】

在容器智能运维控制台的迁移检查页面,单击执行迁移检查。

在迁移检查面板中,选中注意事项中的内容,然后单击执行检查。

  1. 修改cloud-controller-manager的kube-system/cloud-config【阿里云反馈该问题已修复,暂时不操作,如果迁移报错再执行】

原因:因为集群创建的比较早,没有clusterid字段,迁移后会添加这个clusterid字段。这个变更对业务是有影响的,所以迁移时需要确认下,然后后台再进行操作。

影响:所有LoadBalancer类型的Service创建的SLB会有短暂的断开,老链接会闪断

# kubectl edit cm -n kube-system cloud-config
data:
  cloud-config.conf: |-
    {
        "Global": {
            "routeTableIDs": ""
        }
    }
# kubectl edit cm -n kube-system cloud-config
data:
  cloud-config.conf: |-
    {
        "Global": {
            "routeTableIDs": "",
            "clusterID": "cc5047ecb6b0649c29ee53e6040dcd172",
            "serviceBackendType": "eni"
        }
    }
  1. 调整apiserver使用的slb【已完成】
# d1-public-001的nginx,配置文件/etc/nginx/streamconf/daoker-vip.conf

# vip-apiserver:
前端:120.27.233.212:6443
后端:10.63.43.15:6443
proxy_timeout 7200s;

# vip-etcd:
前端:120.27.233.212:2383
后端:
10.61.116.80:2383
10.62.77.50:2383
10.63.43.16:2383
  1. 升级ACK核心组件
  1. 迁移集群

执行迁移集群后,迁移过程预计耗时5分钟。

  1. 删除专有版集群热迁移后的3个Master节点
kubectl delete node d1-dui-10061116080hd d1-dui-10062077050hd d1-dui-10063043016hd
kubectl get nodes $HOSTNAME
systemctl stop kubelet && systemctl disable kubelet
docker rm -f $(docker ps -q)
systemctl stop docker && systemctl disable docker
#systemctl stop etcd && systemctl disable etcd
  1. 重启apisix-ingress-controller,完成后 @孙程 检查服务日志
  1. 修改Master节点KUBE_CONFIG中的apiserver地址为slb地址
for configfile in $(ls /root/.kube/config /home/*/.kube/config 2> /dev/null);do sed -i 's#server: https://.*:6443#server: https://10.63.43.15:6443#g' $configfile;done
  1. 删除Prometheus的无效Target