将数据存储区迁移到 SPBM

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

上下文

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

这些字段的继承情况如下所示:

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 的路径。

Notes

如果您在迁移后创建新的节点池,则新节点池会根据更新后的集群遵循继承规则。

例如,假设您已将 vCenter.datastore 迁移到存储政策。

现在,如果您创建新的节点池并将 nodePools[i].vsphere.datastorenodePools[i].vsphere.storagePolicyName 留空,则新节点池会继承 vCenter.storagePolicyName 中指定的存储政策。