可以使用主管集群中未使用的持久卷声明 (PVC)在 Tanzu Kubernetes 集群中静态创建块卷。

PVC 必须满足以下条件:
  • PVC 位于 Tanzu Kubernetes 集群所在的同一个命名空间中。
  • PVC 未附加到主管集群中的 vSphere Pod 或任何 Tanzu Kubernetes 集群中的 Pod。

使用静态置备,还可以在新的 Tanzu Kubernetes 集群中重用其他 Tanzu Kubernetes 集群不再需要的 PVC。为此,请将原始 Tanzu Kubernetes 集群中持久卷 (PV) 的 Reclaim policy 更改为 Retain,然后删除相应的 PVC。

按照以下步骤,使用剩余底层卷中的信息在新的 Tanzu Kubernetes 集群中静态创建 PVC。

过程

  1. 记下主管集群中原始 PVC 的名称。
    如果要重用旧 Tanzu Kubernetes 集群中的 PVC,可以从 Tanzu Kubernetes 集群中旧 PV 对象的 volumeHandle 检索 PVC 名称。
  2. 创建 PV。
    在 YAML 文件中,指定以下项的值:
    • 对于 storageClassName,可以输入主管集群中的 PVC 使用的存储类名称。
    • 对于 volumeHandle,输入在步骤 1 中获取的 PVC 名称。
    如果要重用其他 Tanzu Kubernetes 集群中的卷,请先从旧 Tanzu Kubernetes 集群中删除 PVC 和 PV 对象,然后再在新的 Tanzu Kubernetes 集群中创建 PV。
    可参考以下 YAML 清单示例。
    apiVersion: v1
       kind: PersistentVolume
       metadata:
         name: static-tkg-block-pv
         annotations:
           pv.kubernetes.io/provisioned-by: csi.vsphere.vmware.com
       spec:
         storageClassName: gc-storage-profile
         capacity:
           storage: 2Gi
         accessModes:
           - ReadWriteOnce
         persistentVolumeReclaimPolicy: Delete
         claimRef:
           namespace: default
           name: static-tkg-block-pvc
         csi:
           driver: "csi.vsphere.vmware.com"
           volumeAttributes:
             type: "vSphere CNS Block Volume"
           volumeHandle: "supervisor-block-pvc-name"  # Enter the PVC name from the Supervisor cluster.
  3. 创建 PVC 以与在步骤 2 中创建的 PV 对象相匹配。
    storageClassName 设置为与 PV 中相同的值。
    kind: PersistentVolumeClaim
       apiVersion: v1
       metadata:
         name: static-tkg-block-pvc
       spec:
         accessModes:
           - ReadWriteOnce
         resources:
           requests:
             storage: 2Gi
         storageClassName: gc-storage-profile
         volumeName: static-tkg-block-pv
  4. 验证 PVC 是否绑定到创建的 PV。
    $ kubectl get pv,pvc
     NAME                                    CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                          STORAGECLASS         REASON   AGE
     persistentvolume/static-tkg-block-pv    2Gi        RWO            Delete           Bound    default/static-tkg-block-pvc   gc-storage-profile            10s
    
     NAME                                         STATUS   VOLUME                CAPACITY   ACCESS MODES   STORAGECLASS         AGE
     persistentvolumeclaim/static-tkg-block-pvc   Bound    static-tkg-block-pv   2Gi        RWO            gc-storage-profile   10s