跨命名空间克隆卷
使用Trident,您可以利用同一 Kubernetes 集群中不同命名空间内的现有卷或卷快照创建新卷。
前提条件
克隆卷之前,请确保源后端和目标后端是同一类型,并且具有相同的存储类别。
|
|
跨命名空间克隆仅支持以下情况: `ontap-san`和 `ontap-nas`存储驱动程序。不支持只读克隆。 |
快速启动
只需几个步骤即可设置卷克隆。
配置源 PVC 以克隆卷源命名空间所有者授予访问源 PVC 中数据的权限。
授予在目标命名空间中创建 CR 的权限集群管理员授予目标命名空间的所有者创建 TridentVolumeReference CR 的权限。
在目标命名空间中创建 TridentVolumeReference目标命名空间的所有者创建 TridentVolumeReference CR 以引用源 PVC。
在目标命名空间中创建克隆 PVC目标命名空间的所有者创建 PVC 以克隆源命名空间中的 PVC。
配置源命名空间和目标命名空间
为确保安全,跨命名空间克隆卷需要源命名空间所有者、集群管理员和目标命名空间所有者的协作和操作。用户角色在每个步骤中都会被指定。
-
源命名空间所有者: 创建PVC(
pvc1)在源命名空间中(namespace1`授予与目标命名空间共享的权限(`namespace2) 使用 `cloneToNamespace`注解。kind: PersistentVolumeClaim apiVersion: v1 metadata: name: pvc1 namespace: namespace1 annotations: trident.netapp.io/cloneToNamespace: namespace2 spec: accessModes: - ReadWriteMany storageClassName: trident-csi resources: requests: storage: 100GiTrident创建 PV 及其后端存储卷。
-
您可以使用逗号分隔的列表将 PVC 共享给多个命名空间。例如,
trident.netapp.io/cloneToNamespace: namespace2,namespace3,namespace4。 -
您可以使用以下方式共享到所有命名空间
*。例如,trident.netapp.io/cloneToNamespace: * -
您可以更新PVC以包含 `cloneToNamespace`随时可以添加注释。
-
-
集群管理员: 确保已配置正确的基于角色的访问控制 (RBAC),以授予目标命名空间所有者在目标命名空间中创建 TridentVolumeReference CR 的权限。(
namespace2)。 -
目标命名空间所有者: 在目标命名空间中创建一个指向源命名空间的 TridentVolumeReference CR。
pvc1。apiVersion: trident.netapp.io/v1 kind: TridentVolumeReference metadata: name: my-first-tvr namespace: namespace2 spec: pvcName: pvc1 pvcNamespace: namespace1 -
目标命名空间所有者: 创建PVC(
pvc2)在目标命名空间(namespace2) 使用cloneFromPVC`或者 `cloneFromSnapshot, 和 `cloneFromNamespace`用于指定源PVC的注释。kind: PersistentVolumeClaim apiVersion: v1 metadata: annotations: trident.netapp.io/cloneFromPVC: pvc1 trident.netapp.io/cloneFromNamespace: namespace1 name: pvc2 namespace: namespace2 spec: accessModes: - ReadWriteMany storageClassName: trident-csi resources: requests: storage: 100Gi
限制
-
对于使用 ontap-nas-economy 驱动程序配置的 PVC,不支持只读克隆。