Partager un volume NFS entre les espaces de noms
Avec Astra Trident, vous pouvez créer un volume dans un espace de noms principal et le partager dans un ou plusieurs espaces de noms secondaires.
Caractéristiques
Le système Astra TridentVolumeReference CR vous permet de partager en toute sécurité des volumes NFS ReadWriteMany (RWX) sur un ou plusieurs espaces de noms Kubernetes. Cette solution Kubernetes-native présente plusieurs avantages :
-
Plusieurs niveaux de contrôle d'accès pour assurer la sécurité
-
Fonctionne avec tous les pilotes de volume NFS Trident
-
Pas de dépendance à tridentctl ou à toute autre fonctionnalité Kubernetes non native
Ce schéma illustre le partage de volumes NFS entre deux espaces de noms Kubernetes.
Démarrage rapide
Vous pouvez configurer le partage de volumes NFS en quelques étapes seulement.
Le propriétaire de l'espace de noms source autorise l'accès aux données dans la demande de volume persistant source.
L'administrateur de cluster accorde l'autorisation au propriétaire de l'espace de noms de destination pour créer le CR TridentVolumeReference.
Le propriétaire de l'espace de noms de destination crée le CR TridentVolumeReference pour faire référence au PVC source.
Le propriétaire de l'espace de noms de destination crée le PVC subalterne pour utiliser la source de données à partir du PVC source.
Configurer les espaces de noms source et de destination
Pour garantir la sécurité, le partage de l'espace de noms croisé nécessite une collaboration et une action du propriétaire de l'espace de noms source, de l'administrateur de cluster et du propriétaire de l'espace de noms de destination. Le rôle utilisateur est désigné dans chaque étape.
-
Propriétaire de l'espace de noms source : Créez le PVC (
pvc1
) dans l'espace de noms source qui accorde l'autorisation de partager avec l'espace de noms de destination (namespace2
) à l'aide deshareToNamespace
l'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 crée le volume persistant et son volume de stockage NFS back-end.
-
Vous pouvez partager le PVC sur plusieurs espaces de noms à l'aide d'une liste délimitée par des virgules. Par exemple
trident.netapp.io/shareToNamespace: namespace2,namespace3,namespace4
, . -
Vous pouvez partager sur tous les espaces de noms à l'aide de
*
. Par exemple,trident.netapp.io/shareToNamespace: *
-
Vous pouvez mettre à jour la demande de volume persistant pour inclure l' `shareToNamespace`annotation à tout moment.
-
-
Cluster admin: Créez le rôle personnalisé et kubeconfig pour accorder l'autorisation au propriétaire de l'espace de noms de destination de créer le CR TridentVolumeReference dans l'espace de noms de destination.
-
Nom de l'espace de noms de destination propriétaire : Créez un CR TridentVolumeReference dans l'espace de noms de destination qui fait référence à l'espace de noms source
pvc1
.apiVersion: trident.netapp.io/v1 kind: TridentVolumeReference metadata: name: my-first-tvr namespace: namespace2 spec: pvcName: pvc1 pvcNamespace: namespace1
-
Propriétaire de l'espace de noms de destination : Créez un PVC (
namespace2
)(pvc2
dans l'espace de noms de destination ) en utilisantshareFromPVC
l'annotation pour désigner le PVC source.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
La taille du PVC de destination doit être inférieure ou égale à la PVC source.
ASTRA Trident lit l' `shareFromPVC`annotation sur la demande de volume persistant de destination et crée le volume persistant de destination en tant que volume subalterne sans ressource de stockage propre qui pointe vers le volume persistant source et partage la ressource de stockage PV source. La demande de volume persistant et la demande de volume persistant de destination apparaissent comme normales.
Supprimer un volume partagé
Vous pouvez supprimer un volume partagé entre plusieurs namespaces. Astra Trident supprimera l'accès au volume de l'espace de noms source et maintiendra l'accès aux autres espaces de noms qui partagent le volume. Lorsque tous les namespaces qui référencent le volume sont supprimés, Astra Trident supprime le volume.
`tridentctl get`Permet d'interroger les volumes subordonnés
A l'aide de l'[tridentctl`utilitaire, vous pouvez exécuter la `get
commande pour obtenir des volumes subordonnés. Pour plus d'informations, reportez-vous au lien :../Trident-Reference/tridentctl.html[tridentctl
commandes et options].
Usage: tridentctl get [option]
Alarmes :
-
`-h, --help
: Aide pour les volumes. -
--parentOfSubordinate string
: Limiter la requête au volume source subordonné. -
--subordinateOf string
: Limiter la requête aux subordonnés de volume.
Limites
-
Astra Trident ne peut pas empêcher les espaces de noms de destination d'écrire sur le volume partagé. Nous vous recommandons d'utiliser un verrouillage de fichiers ou d'autres processus pour éviter d'écraser les données du volume partagé.
-
Vous ne pouvez pas révoquer l'accès au PVC source en supprimant les annotations ou ou
shareFromNamespace
enshareToNamespace
supprimant laTridentVolumeReference
demande de modification. Pour annuler l'accès, vous devez supprimer le PVC subalterne. -
Les snapshots, clones et la mise en miroir ne sont pas possibles sur les volumes subordonnés.
Pour en savoir plus
Pour en savoir plus sur l'accès aux volumes multi-espaces de noms :