Condividere un volume NFS tra gli spazi dei nomi
Utilizzando Trident, è possibile creare un volume in uno spazio dei nomi primario e condividerlo in uno o più spazi dei nomi secondari.
Caratteristiche
TridentVolumeReference CR consente di condividere in modo sicuro volumi NFS ReadWriteMany (RWX) su uno o più namespace Kubernetes. Questa soluzione nativa di Kubernetes offre i seguenti vantaggi:
-
Più livelli di controllo degli accessi per garantire la sicurezza
-
Funziona con tutti i driver di volume Trident NFS
-
Nessuna dipendenza da tridentctl o da qualsiasi altra funzionalità non nativa di Kubernetes
Questo diagramma illustra la condivisione del volume NFS tra due namespace Kubernetes.
Avvio rapido
È possibile configurare la condivisione del volume NFS in pochi semplici passaggi.
Configurare il PVC di origine per condividere il volumeIl proprietario dello spazio dei nomi di origine concede l'autorizzazione ad accedere ai dati nel PVC di origine.
Concedi l'autorizzazione per creare un CR nello spazio dei nomi di destinazioneL'amministratore del cluster concede l'autorizzazione al proprietario dello spazio dei nomi di destinazione per creare il CR TridentVolumeReference.
Crea TridentVolumeReference nello spazio dei nomi di destinazioneIl proprietario dello spazio dei nomi di destinazione crea il CR TridentVolumeReference per fare riferimento al PVC di origine.
Crea il PVC subordinato nello spazio dei nomi di destinazioneIl proprietario dello spazio dei nomi di destinazione crea il PVC subordinato per utilizzare l'origine dati dal PVC di origine.
Configurare gli spazi dei nomi di origine e di destinazione
Per garantire la sicurezza, la condivisione tra namespace richiede la collaborazione e l'azione del proprietario dello spazio dei nomi di origine, dell'amministratore del cluster e del proprietario dello spazio dei nomi di destinazione. Il ruolo dell'utente viene designato in ogni fase.
-
Proprietario dello spazio dei nomi di origine: Crea il PVC(
pvc1) nello spazio dei nomi di origine che concede l'autorizzazione alla condivisione con lo spazio dei nomi di destinazione(namespace2) utilizzando ilshareToNamespaceannotazione.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 crea il PV e il suo volume di archiviazione NFS backend.
-
È possibile condividere il PVC con più namespace utilizzando un elenco delimitato da virgole. Per esempio,
trident.netapp.io/shareToNamespace: namespace2,namespace3,namespace4. -
Puoi condividere con tutti gli spazi dei nomi utilizzando
*. Per esempio,trident.netapp.io/shareToNamespace: * -
È possibile aggiornare il PVC per includere il
shareToNamespaceannotazione in qualsiasi momento.
-
-
Amministratore del cluster: assicurarsi che sia presente il corretto RBAC per concedere l'autorizzazione al proprietario dello spazio dei nomi di destinazione per creare il CR TridentVolumeReference nello spazio dei nomi di destinazione.
-
Proprietario dello spazio dei nomi di destinazione: Crea un CR TridentVolumeReference nello spazio dei nomi di destinazione che fa riferimento allo spazio dei nomi di origine
pvc1.apiVersion: trident.netapp.io/v1 kind: TridentVolumeReference metadata: name: my-first-tvr namespace: namespace2 spec: pvcName: pvc1 pvcNamespace: namespace1 -
Proprietario dello spazio dei nomi di destinazione: Crea un PVC(
pvc2) nello spazio dei nomi di destinazione(namespace2) utilizzando ilshareFromPVCannotazione per designare il PVC sorgente.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: 100GiLa dimensione del PVC di destinazione deve essere inferiore o uguale a quella del PVC di origine.
Il Trident legge il shareFromPVC annotazione sul PVC di destinazione e crea il PV di destinazione come volume subordinato senza risorse di archiviazione proprie che punta al PV di origine e condivide la risorsa di archiviazione del PV di origine. La destinazione PVC e PV appaiono vincolate normalmente.
Elimina un volume condiviso
È possibile eliminare un volume condiviso tra più namespace. Trident rimuoverà l'accesso al volume nello spazio dei nomi di origine e manterrà l'accesso per gli altri spazi dei nomi che condividono il volume. Quando tutti gli spazi dei nomi che fanno riferimento al volume vengono rimossi, Trident elimina il volume.
Utilizzo tridentctl get per interrogare volumi subordinati
Utilizzando il[tridentctl utilità, è possibile eseguire il get comando per ottenere volumi subordinati. Per maggiori informazioni, fare riferimento al tridentctl comandi e opzioni.
Usage: tridentctl get [option]
Bandiere:
-
`-h, --help: Aiuto per i volumi. -
--parentOfSubordinate string: Limita la query al volume sorgente subordinato. -
--subordinateOf string: Limita la query ai subordinati del volume.
Limitazioni
-
Trident non può impedire agli spazi dei nomi di destinazione di scrivere sul volume condiviso. Per evitare la sovrascrittura dei dati del volume condiviso, è opportuno utilizzare il blocco dei file o altri processi.
-
Non è possibile revocare l'accesso al PVC di origine rimuovendo il
shareToNamespaceOshareFromNamespaceannotazioni o eliminazione delTridentVolumeReferenceCR. Per revocare l'accesso, è necessario eliminare il PVC subordinato. -
Non è possibile eseguire snapshot, cloni e mirroring sui volumi subordinati.
Per maggiori informazioni
Per saperne di più sull'accesso ai volumi tra più namespace:
-
Visita"Condivisione di volumi tra namespace: dai il benvenuto all'accesso ai volumi tra namespace" .
-
Guarda la demo su"NetAppTV" .