Ein NFS-Volume kann über Namespaces hinweg genutzt werden
Mit Astra 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 Astra TridentVolumeReference CR können Sie ReadWriteManche (RWX) NFS-Volumes sicher über einen oder mehrere Kubernetes-Namespaces teilen. 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.
Der Eigentümer des Quell-Namespace erteilt die Berechtigung, auf die Daten im Quell-PVC zuzugreifen.
Der Clusteradministrator erteilt dem Eigentümer des Ziel-Namespace die Berechtigung, das TridentVolumeReference CR zu erstellen.
Der Eigentümer des Ziel-Namespace erstellt das TridentVolumeReference CR, um sich auf das Quell-PVC zu beziehen.
Der 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 dershareToNamespace
Annotation.kind: PersistentVolumeClaim apiVersion: v1 metadata: name: pvc1 namespace: namespace1 annotations: trident.netapp.io/shareToNamespace: namespace2 spec: accessModes: - ReadWriteMany storageClassName: trident-csi resources: requests: storage: 100Gi
Astra Trident erstellt das PV und das Back-End 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
shareToNamespace
ist.
-
-
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 dershareFromPVC
Anmerkung 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: 100Gi
Die Größe der Ziel-PVC muss kleiner oder gleich der Quelle PVC sein.
Astra Trident liest die shareFromPVC
Annotation auf der Ziel-PVC ein und erstellt das Ziel-PV als 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. Astra Trident entfernt den Zugriff auf das Volume im Quell-Namespace und behält auch andere Namespaces, die das Volume gemeinsam nutzen. Wenn alle Namespaces entfernt werden, die auf dem Volume verweisen, löscht Astra 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
-
Astra Trident kann nicht verhindern, dass Ziel-Namespaces auf dem Shared 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
shareFromNamespace
entfernenshareToNamespace
oder 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".