跨命名空間複製磁碟區
使用 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、不支援唯讀複本。