Skip to main content
Eine neuere Version dieses Produkts ist erhältlich.
Die deutsche Sprachversion wurde als Serviceleistung für Sie durch maschinelle Übersetzung erstellt. Bei eventuellen Unstimmigkeiten hat die englische Sprachversion Vorrang.

Ein NFS-Volume kann über Namespaces hinweg genutzt werden

Beitragende

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

Schnellstart

Sie können in nur wenigen Schritten NFS-Volume Sharing einrichten.

Eins Konfigurieren Sie die Quell-PVC für die gemeinsame Nutzung des Volumes

Der Eigentümer des Quell-Namespace erteilt die Berechtigung, auf die Daten im Quell-PVC zuzugreifen.

Zwei Erteilen Sie die Berechtigung zum Erstellen eines CR im Zielspeicherort

Der Clusteradministrator erteilt dem Eigentümer des Ziel-Namespace die Berechtigung, das TridentVolumeReference CR zu erstellen.

Drittens Erstellen Sie TridentVolumeReference im Ziel-Namespace

Der Eigentümer des Ziel-Namespace erstellt das TridentVolumeReference CR, um sich auf das Quell-PVC zu beziehen.

Vier Erstellen Sie die untergeordnete PVC im Ziel-Namespace

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.

Schritte
  1. Source Namespace Owner: Erstellen Sie die PVC (pvc1) im Source Namespace, der die Erlaubnis erteilt, mit dem Ziel-Namespace zu teilen (namespace2) mit der shareToNamespace 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.

    Hinweis
    • 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.

  2. 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.

  3. 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
  4. Destination Namespace Owner: Erstellen Sie eine PVC (pvc2) im Destination Namespace (namespace2) mit der shareFromPVC 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
    Hinweis Die Größe der Ziel-PVC muss kleiner oder gleich der Quelle PVC sein.
Ergebnisse

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 entfernen shareToNamespace oder den CR löschen TridentVolumeReference. 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: