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.
![Ein Konzeptdiagramm der Cross Namespace Sharing](../media/cross-namespace-sharing.png)
Schnellstart
Sie können in nur wenigen Schritten NFS-Volume Sharing einrichten.
![Eins](https://raw.githubusercontent.com/NetAppDocs/common/main/media/number-1.png)
Der Eigentümer des Quell-Namespace erteilt die Berechtigung, auf die Daten im Quell-PVC zuzugreifen.
![Zwei](https://raw.githubusercontent.com/NetAppDocs/common/main/media/number-2.png)
Der Clusteradministrator erteilt dem Eigentümer des Ziel-Namespace die Berechtigung, das TridentVolumeReference CR zu erstellen.
![Drittens](https://raw.githubusercontent.com/NetAppDocs/common/main/media/number-3.png)
Der Eigentümer des Ziel-Namespace erstellt das TridentVolumeReference CR, um sich auf das Quell-PVC zu beziehen.
![Vier](https://raw.githubusercontent.com/NetAppDocs/common/main/media/number-4.png)
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 das PVC (
pvc1
) Im Quell-Namespace, der die Erlaubnis gibt, mit dem Ziel-Namespace zu teilen (namespace2
) Mit demshareToNamespace
Anmerkung: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. 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
shareToNamespace
Kommentare können jederzeit hinzugefügt werden.
-
-
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.
-
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 demshareFromPVC
Anmerkung 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: 100Gi
Die Größe der Ziel-PVC muss kleiner oder gleich der Quelle PVC sein.
Astra Trident liest den shareFromPVC
Anmerkung auf dem Ziel-PVC und erstellt das Ziel-PV als untergeordnetes Volumen ohne eigene Speicherressource, die auf das Quell-PV verweist und die PV-Quellressource teilt. 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.
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
-
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 Quelle PVC nicht widerrufen, indem Sie die entfernen
shareToNamespace
OdershareFromNamespace
Anmerkungen oder Löschen desTridentVolumeReference
CR. 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".