可以使用主管集群中未使用的持久卷声明 (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。
过程
- 记下主管集群中原始 PVC 的名称。
如果要重用旧
Tanzu Kubernetes 集群中的 PVC,可以从
Tanzu Kubernetes 集群中旧 PV 对象的
volumeHandle 检索 PVC 名称。
- 创建 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.
- 创建 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
- 验证 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