跨命名空间克隆卷
使用 Trident,您可以使用来自同一 Kubernetes 集群内不同命名空间的现有卷或卷快照创建新卷。
前提条件
在克隆卷之前,请确保源和目标后端的类型相同并且具有相同的存储类。
|
|
只有 ontap-san 和 ontap-nas 存储驱动程序才支持跨命名空间克隆。不支持只读克隆。
|
快速入门
只需几步即可设置卷克隆。
配置源 PVC 以克隆卷源命名空间所有者授予访问源 PVC 中的数据的权限。
授予在目标命名空间中创建 CR 的权限群集管理员授予目标命名空间的所有者创建 TridentVolumeReference CR 的权限。
在目标命名空间中创建 TridentVolumeReference目标命名空间的所有者创建 TridentVolumeReference CR 以引用源 PVC。
在目标命名空间中创建克隆 PVC目标命名空间的所有者创建 PVC 以从源命名空间克隆 PVC。
配置源和目标命名空间
为确保安全性,跨命名空间克隆卷需要源命名空间所有者、集群管理员和目标命名空间所有者的协作和操作。在每个步骤中都指定了用户角色。
-
源命名空间所有者: 在源命名空间(
namespace1`中创建 PVC(`pvc1,通过使用 `cloneToNamespace`注解,授予与目标命名空间(`namespace2`共享的权限。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 -
目标命名空间所有者: 在目标命名空间 (
namespace2) 中创建一个 PVC (pvc2),使用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,不支持只读克隆。