本文档介绍如何将 vSphere 数据存储区迁移到基于存储政策的管理 (SPBM)。
上下文
您可以在集群配置文件中在四个位置指定数据存储区:
管理员集群 vCenter.datastore
用户集群 vCenter.datastore
这些字段的继承情况如下所示:
adminCluster.vCenter.datastore -> userCluster.vCenter.datastore -> (userCluster.masterNode.vsphere.datastore and userCluster.nodePools[i].vsphere.datastore
示例:
如果
userCluster.vCenter.datastore
为空,则它会继承adminCluster.vCenter.datastore
的值。如果
userCluster.nodePools[i].vsphere.datastore
为空,则它会继承userCluster.vCenter.datastore
的值。
同样,您可以在四个位置指定存储政策:
storagePolicyName
字段的继承与 datastore
字段的继承相同。
准备工作
迁移属于单向迁移。我们不支持迁移回之前的状态。
为用户集群执行迁移
获取当前集群配置:
gkectl get-config cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --cluster-name USER_CLUSTER_NAME \ --output-dir ./gen-files
请替换以下内容:
ADMIN_CLUSTER_KUBECONFIG:管理员集群的 kubeconfig 文件的路径。
USER_CLUSTER_NAME:用户集群的名称
在
./gen-files
中,找到user-cluster.yaml
。如需详细了解如何获取配置文件,请参阅从集群生成配置文件。
要为其中一个数据存储区字段执行迁移,请执行以下操作:
- 将
datastore
字段设置为空字符串。 - 为
storagePolicyName
指定值。 - 运行
gkectl update
。
以下是为
masterNode.vsphere.datastore
执行迁移的示例:调整最近生成的
user-cluster.yaml
:masterNode.vsphere.datastore="" masterNode.vsphere.masterNode.vsphere.storagePolicyName="control-plane-storage-policy"
更新用户集群:
gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG
请替换以下内容:
ADMIN_CLUSTER_KUBECONFIG:管理员集群 kubeconfig 文件的路径
USER_CLUSTER_CONFIG:您在上一步中生成的
user-cluster.yaml
的路径。
- 将
Notes
如果您在迁移后创建新的节点池,则新节点池会根据更新后的集群遵循继承规则。
例如,假设您已将 vCenter.datastore
迁移到存储政策。
现在,如果您创建新的节点池并将 nodePools[i].vsphere.datastore
和 nodePools[i].vsphere.storagePolicyName
留空,则新节点池会继承 vCenter.storagePolicyName
中指定的存储政策。