本文档介绍如何将 vSphere 数据存储区迁移到基于存储空间政策的管理 (SPBM)。
1.29:预览版
1.16 及更低版本:不可用
上下文
在集群配置文件中,您可以在以下四个位置指定数据存储区:
管理员集群 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
的路径。
- 将
备注
如果您在迁移后创建新的节点池,则新池会遵循更新后的集群的继承规则。
例如,假设您已将 vCenter.datastore
迁移到存储空间政策。
现在,如果您创建新的节点池并将 nodePools[i].vsphere.datastore
和 nodePools[i].vsphere.storagePolicyName
都留空,则新节点池会继承 vCenter.storagePolicyName
中指定的存储空间政策。