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 PVC-Quelle für die gemeinsame Nutzung des VolumesDer Eigentümer des Quell-Namespace erteilt die Berechtigung, auf die Daten im Quell-PVC zuzugreifen.
Berechtigung zum Erstellen eines CR im Ziel-Namespace gewährenDer Clusteradministrator erteilt dem Eigentümer des Ziel-Namespace die Berechtigung, das TridentVolumeReference CR zu erstellen.
Erstellen Sie im Ziel-Namespace tridentVolumeReferenceDer Eigentümer des Ziel-Namespace erstellt das TridentVolumeReference CR, um sich auf das Quell-PVC zu beziehen.
Erstellen Sie das 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 das PVC (
pvc1) Im Quell-Namespace, der die Erlaubnis gibt, mit dem Ziel-Namespace zu teilen (namespace2) Mit demshareToNamespaceAnmerkung: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. Beispiel:
trident.netapp.io/shareToNamespace: namespace2,namespace3,namespace4. -
Sie können mit allen Namespaces freigeben
*. Beispiel:trident.netapp.io/shareToNamespace: * -
Sie können das PVC so aktualisieren, dass es die enthält
shareToNamespaceKommentare können jederzeit hinzugefügt werden.
-
-
Clusteradministrator: Stellen Sie sicher, dass das richtige RBAC vorhanden ist, um dem Besitzer des Zielnamespace die Berechtigung zum Erstellen des TridentVolumeReference CR im Zielnamespace zu erteilen.
-
Zielgebietes-Namespace-Eigentümer: 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 -
Eigentümer des Ziel-Namespace: Erstellen Sie ein PVC (
pvc2) Im Ziel-Namespace (namespace2) Mit demshareFromPVCAnmerkung zur Angabe der Quelle PVC.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.
Nutzung tridentctl get Zum Abfragen von untergeordneten Volumes
Verwenden der[tridentctl Das Dienstprogramm kann ausgeführt werden get Befehl zum Abrufen untergeordneter Volumes. Weitere Informationen finden Sie unter Link:../Trident-Referenz/tridentctl.html[tridentctl Befehle und Optionen].
Usage: tridentctl get [option]
Markierungen:
-
`-h, --help: Hilfe für Volumen. -
--parentOfSubordinate string: Abfrage auf untergeordnetes Quellvolumen begrenzen. -
--subordinateOf string: Abfrage auf Untergebene 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 Quelle PVC nicht widerrufen, indem Sie die entfernen
shareToNamespaceOdershareFromNamespaceAnmerkungen oder Löschen desTridentVolumeReferenceCR. 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".