将数据存储区迁移到 SPBM

本文档介绍如何将 vSphere 数据存储区迁移到基于存储空间政策的管理 (SPBM)。

1.29:预览版
1.16 及更低版本:不可用

上下文

在集群配置文件中,您可以在以下四个位置指定数据存储区:

这些字段的继承关系如下所示:

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 字段相同。

准备工作

这是单向迁移。我们不支持迁回之前的状态。

为用户集群执行迁移

  1. 获取当前集群配置:

    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

    如需详细了解如何获取配置文件,请参阅从集群生成配置文件

  2. 如需对某个数据存储区字段执行迁移,请执行以下操作:

    1. datastore 字段设置为空字符串。
    2. storagePolicyName 指定值。
    3. 运行 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.datastorenodePools[i].vsphere.storagePolicyName 都留空,则新节点池会继承 vCenter.storagePolicyName 中指定的存储空间政策。