将 vSphere 从树内迁移到树外
Kubernetes 不再在树内维护云提供商。vSphere 有一个树外云提供商,可以通过安装 vSphere 云提供商和云存储插件来使用。
本页面介绍如何从树内 vSphere 云提供商迁移到树外,并在迁移后管理现有虚拟机。
它遵循官方 vSphere 迁移文档中提供的步骤,并提供在 Rancher 中执行的步骤。
Cloud-config 格式限制
由于 vSphere Cloud Storage Interface (CSI) 中的一个现有错误,使用以下 cloud-config 格式配置的现有卷将无法迁移。
如果 cloud-config 中的数据存储和资源池路径采用这种格式,vsphere CSI 驱动程序将无法识别它:
default-datastore: </datacenter>/datastore/<default-datastore-name>
resourcepool-path: "</datacenter>/host/<cluster-name>/Resources/<resource-pool-name>"
使用树内提供商以下列格式配置的卷将正确迁移:
default-datastore: <default-datastore-name>
resourcepool-path: "<cluster-name>/Resources/<resource-pool-name>"
Rancher 问题跟踪此 bug: https://github.com/rancher/rancher/issues/31105
前提条件
-
vSphere CSI 迁移需要 vSphere 7.0u1。为了能够管理现有树内 vSphere 卷,请将 vSphere 升级到 7.0u1。
-
Kubernetes 版本必须为 1.19 或更高。
迁移
1. 安装 CPI 插件
安装 CPI 之前,我们需要用 node.cloudprovider.kubernetes.io/uninitialized=true:NoSchedule
标记所有节点。
可以通过运行以下命令来完成:
curl -O https://raw.githubusercontent.com/rancher/helm3-charts/56b622f519728378abeddfe95074f1b87ab73b1e/charts/vsphere-cpi/taints.sh
或:
wget https://raw.githubusercontent.com/rancher/helm3-charts/56b622f519728378abeddfe95074f1b87ab73b1e/charts/vsphere-cpi/taints.sh chmod +x taints.sh ./taints.sh <path to kubeconfig if running the command outside the cluster>
运行脚本并标记所有节点后,启动 Helm vSphere CPI Chart。
-
点击 ☰ > Cluster Management.
-
转到将要安装 vSphere CPI Chart 的集群,然后点击 Explore.
-
点击
. -
点击 vSphere CPI.
-
点击 Install.
-
填写所需的 vCenter 详细信息,然后单击 Install.
vSphere CPI 会使用 ProviderID 初始化所有节点,这是 vSphere CSI 驱动程序所需要的。
使用以下命令检查是否用 ProviderID 初始化了所有节点:
kubectl describe nodes | grep "ProviderID"
2. 安装 CSI 驱动程序
-
点击 ☰ > Cluster Management.
-
转到将要安装 vSphere CSI Chart 的集群,点击 Explore.
-
点击
. -
点击 vSphere CSI.
-
点击 Install.
-
填写所需的 vCenter 详细信息,然后单击 Install.
-
选中 Customize Helm options before install,然后单击 Next.
-
在 Features 选项卡上, 选中 Enable CSI Migration.
-
(可选)转到 Storage 选项卡设置数据存储。此 Chart 会创建一个以
csi.vsphere.vmware.com
作为供应商的 StorageClass。在创建此 StorageClass 时,您可以提供用于 CSI 卷配置的数据存储的 URL。数据存储 URL 可在 vSphere 客户端中通过选择数据存储并转到摘要选项卡找到。填写 StorageClass 的详细信息。 -
点击 Install.