Ein NFS-Volume kann über Namespaces hinweg genutzt werden
Mit Trident können Sie ein Volume in einem primären Namespace erstellen und es in einem oder mehreren sekundären Namespaces teilen.
Funktionen
Mit dem TridentVolumeReference CR können Sie ReadWriteMany (RWX) NFS-Volumes sicher über einen oder mehrere Kubernetes-Namespaces freigeben. Diese native Kubernetes-Lösung bietet folgende Vorteile:
-
Mehrere Stufen der Zugriffssteuerung zur Sicherstellung der Sicherheit
-
Funktioniert mit allen Trident NFS-Volume-Treibern
-
Tridentctl oder andere nicht-native Kubernetes-Funktionen sind nicht von Bedeutung
Dieses Diagramm zeigt die NFS-Volume-Freigabe über zwei Kubernetes-Namespaces.
Schnellstart
Sie können in nur wenigen Schritten NFS-Volume Sharing einrichten.
Konfigurieren Sie die Quell-PVC für die gemeinsame Nutzung des VolumesDer Eigentümer des Quell-Namespace erteilt die Berechtigung, auf die Daten im Quell-PVC zuzugreifen.
Erteilen Sie die Berechtigung zum Erstellen eines CR im ZielspeicherortDer Clusteradministrator erteilt dem Eigentümer des Ziel-Namespace die Berechtigung, das TridentVolumeReference CR zu erstellen.
Erstellen Sie TridentVolumeReference im Ziel-NamespaceDer Eigentümer des Ziel-Namespace erstellt das TridentVolumeReference CR, um sich auf das Quell-PVC zu beziehen.
Erstellen Sie die untergeordnete PVC im Ziel-NamespaceDer Eigentümer des Ziel-Namespace erstellt das untergeordnete PVC, um die Datenquelle aus dem Quell-PVC zu verwenden.
Konfigurieren Sie die Namensräume für Quelle und Ziel
Um die Sicherheit zu gewährleisten, erfordert die Namespace-übergreifende Freigabe Zusammenarbeit und Aktion durch den Eigentümer des Quell-Namespace, den Cluster-Administrator und den Ziel-Namespace-Eigentümer. In jedem Schritt wird die Benutzerrolle festgelegt.
-
Source Namespace Owner: Erstellen Sie die PVC (
pvc1) im Source Namespace, der die Erlaubnis erteilt, mit dem Ziel-Namespace zu teilen (namespace2) mit dershareToNamespaceAnnotation.kind: PersistentVolumeClaim apiVersion: v1 metadata: name: pvc1 namespace: namespace1 annotations: trident.netapp.io/shareToNamespace: namespace2 spec: accessModes: - ReadWriteMany storageClassName: trident-csi resources: requests: storage: 100GiTrident erstellt das PV und das dazugehörige Backend-NFS-Storage-Volume.
-
Sie können das PVC über eine durch Kommas getrennte Liste mehreren Namespaces freigeben. `trident.netapp.io/shareToNamespace: namespace2,namespace3,namespace4`Beispiel: .
-
Mit können Sie alle Namespaces teilen
*. Beispiel:trident.netapp.io/shareToNamespace: * -
Sie können die PVC so aktualisieren, dass die Anmerkung jederzeit enthalten
shareToNamespaceist.
-
-
Cluster Admin: Erstellen Sie die benutzerdefinierte Rolle und kubeconfig, um dem Ziel-Namespace-Eigentümer die Berechtigung zu erteilen, das TridentVolumeReference CR im Ziel-Namespace zu erstellen.
-
Destination Namespace Owner: Erstellen Sie ein TridentVolumeReference CR im Ziel-Namespace, der sich auf den Quell-Namespace bezieht
pvc1.apiVersion: trident.netapp.io/v1 kind: TridentVolumeReference metadata: name: my-first-tvr namespace: namespace2 spec: pvcName: pvc1 pvcNamespace: namespace1
-
Destination Namespace Owner: Erstellen Sie eine PVC (
pvc2) im Destination Namespace (namespace2) mit dershareFromPVCAnmerkung die Quell-PVC zu bestimmen.kind: PersistentVolumeClaim apiVersion: v1 metadata: annotations: trident.netapp.io/shareFromPVC: namespace1/pvc1 name: pvc2 namespace: namespace2 spec: accessModes: - ReadWriteMany storageClassName: trident-csi resources: requests: storage: 100GiDie Größe der Ziel-PVC muss kleiner oder gleich der Quelle PVC sein.
Trident liest die shareFromPVC Annotation auf der Ziel-PVC und erstellt das Ziel-PV als ein untergeordnetes Volume ohne eigene Speicherressource, die auf das Quell-PV verweist und die Quell-PV-Speicherressource gemeinsam nutzt. Die Ziel-PVC und das PV erscheinen wie normal gebunden.
Löschen eines freigegebenen Volumes
Sie können ein Volume löschen, das über mehrere Namespaces hinweg gemeinsam genutzt wird. Trident entfernt den Zugriff auf das Volume im Quell-Namespace und hat auch Zugriff auf andere Namespaces, die das Volume gemeinsam nutzen. Wenn alle Namespaces, die auf das Volume verweisen, entfernt werden, löscht Trident das Volume.
Zum Abfragen untergeordneter Volumes verwenden tridentctl get
Mit dem[tridentctl Dienstprogramm können Sie den Befehl ausführen get, um untergeordnete Volumes zu erhalten. Weitere Informationen finden Sie unter Link:../Trident-reference/tridentctl.html[tridentctl Commands and options].
Usage: tridentctl get [option]
Markierungen:
-
`-h, --help: Hilfe für Bände. -
--parentOfSubordinate string: Abfrage auf untergeordneten Quellvolume beschränken. -
--subordinateOf string: Abfrage auf Untergebene des Volumens beschränken.
Einschränkungen
-
Trident kann nicht verhindern, dass Zielnamepaces auf das gemeinsam genutzte Volume schreiben. Sie sollten Dateisperren oder andere Prozesse verwenden, um das Überschreiben von gemeinsam genutzten Volume-Daten zu verhindern.
-
Sie können den Zugriff auf die Quell-PVC nicht aufheben, indem Sie die Anmerkungen oder
shareFromNamespaceentfernenshareToNamespaceoder den CR löschenTridentVolumeReference. Um den Zugriff zu widerrufen, müssen Sie das untergeordnete PVC löschen. -
Snapshots, Klone und Spiegelungen sind auf untergeordneten Volumes nicht möglich.
Finden Sie weitere Informationen
Weitere Informationen zum Namespace-übergreifenden Volume-Zugriff:
-
Besuchen Sie "Teilen von Volumes zwischen Namespaces: Sagen Sie hallo für Namespace-übergreifenden Volume-Zugriff".
-
Sehen Sie sich die Demo an "NetAppTV".