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 über Namespaces hinweg freigeben

Änderungen vorschlagen

Mit Trident können Sie ein Volume in einem primären Namespace erstellen und es in einem oder mehreren sekundären Namespaces freigeben.

Features

Das TridentVolumeReference CR ermöglicht es Ihnen, ReadWriteMany (RWX)-NFS-Volumes sicher über einen oder mehrere Kubernetes-Namespaces hinweg freizugeben. Diese Kubernetes-native Lösung bietet folgende Vorteile:

  • Mehrere Zugriffskontrollebenen zur Gewährleistung der Sicherheit

  • Funktioniert mit allen Trident NFS-Volume-Treibern

  • Keine Abhängigkeit von tridentctl oder anderen nicht-nativen Kubernetes-Funktionen

Dieses Diagramm veranschaulicht die gemeinsame Nutzung von NFS-Volumes über zwei Kubernetes-Namespaces hinweg.

Ein konzeptionelles Diagramm zur gemeinsamen Nutzung von Namespaces.

Schnellstart

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

EinsKonfigurieren Sie den Quell-PVC, um das Volume freizugeben

Der Inhaber des Quell-Namespace erteilt die Berechtigung zum Zugriff auf die Daten im Quell-PVC.

Zwei Erteilen Sie die Berechtigung zum Erstellen eines CR im Ziel-Namespace

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

Drei Erstellen Sie TridentVolumeReference im Ziel-Namespace

Der Eigentümer des Ziel-Namensraums erstellt die TridentVolumeReference CR, um auf die Quell-PVC zu verweisen.

Vier Erstellen Sie den untergeordneten PVC im Ziel-Namespace

Der Eigentümer des Ziel-Namensraums erstellt den untergeordneten PVC, um die Datenquelle aus dem Quell-PVC zu verwenden.

Konfigurieren Sie die Quell- und Ziel-Namespaces

Um die Sicherheit zu gewährleisten, erfordert die gemeinsame Nutzung über verschiedene Namespaces hinweg die Zusammenarbeit und das Handeln des Quell-Namespace-Inhabers, des Cluster-Administrators und des Ziel-Namespace-Inhabers. Die Benutzerrolle wird in jedem Schritt festgelegt.

Schritte
  1. Quellnamespace-Inhaber: Erstellen Sie die PVC (pvc1 im Quellnamespace, die die Berechtigung zur gemeinsamen Nutzung mit dem Zielnamespace (namespace2 mithilfe der shareToNamespace Annotation gewährt.

    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

    Trident erstellt das PV und sein Backend-NFS-Speichervolume.

    Hinweis
    • Sie können die PVC mithilfe einer durch Kommas getrennten Liste für mehrere Namensräume freigeben. Zum Beispiel trident.netapp.io/shareToNamespace: namespace2,namespace3,namespace4.

    • Sie können für alle Namensräume freigeben *. Zum Beispiel, trident.netapp.io/shareToNamespace: *

    • Sie können die PVC jederzeit aktualisieren, um die shareToNamespace Annotation einzuschließen.

  2. Cluster-Administrator: Stellen Sie sicher, dass die korrekte RBAC-Konfiguration vorhanden ist, um dem Besitzer des Ziel-Namespace die Berechtigung zum Erstellen des TridentVolumeReference CR im Ziel-Namespace zu erteilen.

  3. Ziel-Namespace-Inhaber: Erstellen Sie eine TridentVolumeReference CR im Ziel-Namespace, die auf den Quell-Namespace verweist pvc1.

    apiVersion: trident.netapp.io/v1
    kind: TridentVolumeReference
    metadata:
      name: my-first-tvr
      namespace: namespace2
    spec:
      pvcName: pvc1
      pvcNamespace: namespace1
  4. Ziel-Namespace-Inhaber: Erstellen Sie einen PVC (pvc2 im Ziel-Namespace (namespace2 unter Verwendung der shareFromPVC-Annotation, um den Quell-PVC zu kennzeichnen.

    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 des Ziel-PVC muss kleiner oder gleich der des Quell-PVC sein.
Ergebnisse

Trident liest die shareFromPVC Annotation auf dem Ziel-PVC und erstellt das Ziel-PV als untergeordnetes Volume ohne eigene Speicherressource, das auf das Quell-PV verweist und die Speicherressource des Quell-PV mitnutzt. Das Ziel-PVC und -PV erscheinen wie gewohnt verbunden.

Löschen eines freigegebenen Volumes

Sie können ein Volume löschen, das von mehreren Namespaces gemeinsam genutzt wird. Trident entfernt den Zugriff auf das Volume im Quell-Namespace und erhält den Zugriff für andere Namespaces, die das Volume gemeinsam nutzen. Wenn alle Namespaces, die auf das Volume verweisen, entfernt wurden, löscht Trident das Volume.

Verwenden Sie tridentctl get zur Abfrage untergeordneter Volumes

Mit dem[tridentctl Dienstprogramm können Sie den get Befehl ausführen, um untergeordnete Volumes abzurufen. Weitere Informationen finden Sie unter tridentctl commands and options.

Usage:
  tridentctl get [option]

Flags:

  • `-h, --help: Hilfe für Bände.

  • --parentOfSubordinate string: Beschränken Sie die Abfrage auf das untergeordnete Quellvolume.

  • --subordinateOf string: Beschränken Sie die Abfrage auf untergeordnete Elemente des Volumens.

Einschränkungen

  • Trident kann nicht verhindern, dass Ziel-Namespaces auf das gemeinsam genutzte Volume schreiben. Sie sollten Dateisperren oder andere Verfahren verwenden, um das Überschreiben von Daten auf dem gemeinsam genutzten Volume zu verhindern.

  • Sie können den Zugriff auf die Quell-PVC nicht widerrufen, indem Sie die shareToNamespace oder shareFromNamespace Anmerkungen entfernen oder die TridentVolumeReference CR löschen. Um den Zugriff zu widerrufen, müssen Sie die untergeordnete PVC löschen.

  • Snapshots, Klone und Spiegelungen sind auf untergeordneten Volumes nicht möglich.

Für weitere Informationen

Um mehr über den Volume-Zugriff über Namespaces hinweg zu erfahren: