Volumes über Namespaces hinweg klonen
Mit Trident können Sie neue Volumes erstellen, indem Sie vorhandene Volumes oder Volumesnapshots aus einem anderen Namespace innerhalb desselben Kubernetes-Clusters verwenden.
Voraussetzungen
Bevor Sie Volumes klonen, stellen Sie sicher, dass das Quell- und das Ziel-Backend vom gleichen Typ sind und die gleiche Speicherklasse haben.
|
|
Das Klonen über Namensräume hinweg wird nur für die ontap-san und ontap-nas Speichertreiber unterstützt. Schreibgeschützte Klone werden nicht unterstützt.
|
Schnellstart
Das Klonen von Volumes lässt sich in wenigen Schritten einrichten.
Konfigurieren Sie die Quell-PVC, um das Volume zu klonenDer Inhaber des Quell-Namespace erteilt die Berechtigung zum Zugriff auf die Daten im Quell-PVC.
Erteilen Sie die Berechtigung zum Erstellen eines CR im Ziel-NamespaceDer Clusteradministrator erteilt dem Eigentümer des Ziel-Namespace die Berechtigung, die TridentVolumeReference CR zu erstellen.
Erstellen Sie TridentVolumeReference im Ziel-NamespaceDer Eigentümer des Ziel-Namensraums erstellt die TridentVolumeReference CR, um auf die Quell-PVC zu verweisen.
Erstellen Sie den Klon-PVC im Ziel-NamespaceDer Eigentümer des Ziel-Namensraums erstellt einen PVC, um den PVC aus dem Quell-Namensraum zu klonen.
Konfigurieren Sie die Quell- und Ziel-Namespaces
Um die Sicherheit zu gewährleisten, erfordert das Klonen von Volumes über Namespaces hinweg die Zusammenarbeit und das Eingreifen des Quell-Namespace-Inhabers, des Cluster-Administrators und des Ziel-Namespace-Inhabers. Die Benutzerrolle wird in jedem Schritt festgelegt.
-
Quellnamespace-Inhaber: Erstellen Sie die PVC (
pvc1im Quellnamespace (namespace1, die die Berechtigung zur gemeinsamen Nutzung mit dem Zielnamespace (namespace2mithilfe dercloneToNamespace-Annotation gewährt.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 erstellt das PV und dessen Backend-Speichervolume.
-
Sie können die PVC mithilfe einer durch Kommas getrennten Liste für mehrere Namensräume freigeben. Zum Beispiel,
trident.netapp.io/cloneToNamespace: namespace2,namespace3,namespace4. -
Sie können für alle Namensräume freigeben
*. Zum Beispiel,trident.netapp.io/cloneToNamespace: * -
Sie können die PVC jederzeit aktualisieren, um die
cloneToNamespaceAnnotation einzuschließen.
-
-
Cluster-Administrator: Stellen Sie sicher, dass die korrekte RBAC-Konfiguration vorhanden ist, um dem Besitzer des Ziel-Namespace die Berechtigung zum Erstellen des TridentVolumeReference CR im Ziel-Namespace zu erteilen (
namespace2). -
Ziel-Namespace-Inhaber: Erstellen Sie eine TridentVolumeReference CR im Ziel-Namespace, die auf den Quell-Namespace verweist
pvc1.apiVersion: trident.netapp.io/v1 kind: TridentVolumeReference metadata: name: my-first-tvr namespace: namespace2 spec: pvcName: pvc1 pvcNamespace: namespace1 -
Ziel-Namespace-Inhaber: Erstellen Sie einen PVC (
pvc2) im Ziel-Namespace (namespace2) mit der Verwendung voncloneFromPVCodercloneFromSnapshotundcloneFromNamespaceAnnotationen, um den Quell-PVC zu kennzeichnen.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
Einschränkungen
-
Für PVCs, die mit ontap-nas-economy-Treibern bereitgestellt wurden, sind schreibgeschützte Klone nicht unterstützt.