Partager un volume NFS entre espaces de noms
Avec 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 CR TridentVolumeReference vous permet de partager en toute sécurité des volumes NFS ReadWriteMany (RWX) sur un ou plusieurs espaces de noms Kubernetes. Cette solution native Kubernetes présente les avantages suivants :
-
Plusieurs niveaux de contrôle d'accès pour garantir la sécurité
-
Compatible avec tous les pilotes de volume NFS Trident
-
Aucune dépendance à tridentctl ni à aucune autre fonctionnalité non native de Kubernetes
Ce diagramme illustre le partage de volumes NFS entre deux espaces de noms Kubernetes.
Démarrage rapide
Vous pouvez configurer le partage de volume NFS en quelques étapes seulement.
Configurez le PVC source pour partager le volume.Le propriétaire de l'espace de noms source accorde l'autorisation d'accéder aux données du PVC source.
Autoriser la création d'une demande de changement dans l'espace de noms de destinationL'administrateur du cluster autorise le propriétaire de l'espace de noms de destination à créer la ressource personnalisée TridentVolumeReference.
Créez une référence de volume Trident dans l'espace de noms de destination.Le propriétaire de l'espace de noms de destination crée la ressource personnalisée TridentVolumeReference pour faire référence au volume persistant source.
Créez le PVC subordonné dans l'espace de noms de destinationLe propriétaire de l'espace de noms de destination crée le PVC subordonné pour utiliser la source de données du PVC source.
Configurez les espaces de noms source et de destination
Pour garantir la sécurité, le partage entre espaces de noms nécessite une collaboration et une action de la part du propriétaire de l'espace de noms source, de l'administrateur du cluster et du propriétaire de l'espace de noms de destination. Le rôle de l'utilisateur est défini à chaque étape.
-
Propriétaire de l'espace de noms source : Créer le PVC(
pvc1) dans l'espace de noms source qui autorise le partage avec l'espace de noms de destination(namespace2) en utilisantshareToNamespaceannotation.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 crée le PV et son volume de stockage NFS backend.
-
Vous pouvez partager le PVC avec plusieurs espaces de noms en utilisant une liste séparée par des virgules. Par exemple,
trident.netapp.io/shareToNamespace: namespace2,namespace3,namespace4. -
Vous pouvez partager avec tous les espaces de noms en utilisant
*. Par exemple,trident.netapp.io/shareToNamespace: * -
Vous pouvez mettre à jour le PVC pour inclure le
shareToNamespaceannotation à tout moment.
-
-
Administrateur de cluster : assurez-vous qu'un RBAC approprié est en place 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.
-
Propriétaire de l'espace de noms de destination : Créez une ressource personnalisée 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éer un PVC(
pvc2) dans l'espace de noms de destination(namespace2) en utilisantshareFromPVCannotation 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: 100GiLe diamètre du tuyau PVC de destination doit être inférieur ou égal à celui du tuyau PVC source.
Trident lit le shareFromPVC annotation sur le PVC de destination et crée le PV de destination en tant que volume subordonné sans ressource de stockage propre qui pointe vers le PV source et partage la ressource de stockage du PV source. Les tubes PVC et PV de destination semblent être liés normalement.
Supprimer un volume partagé
Vous pouvez supprimer un volume partagé entre plusieurs espaces de noms. Trident supprimera l'accès au volume sur l'espace de noms source et maintiendra l'accès pour les autres espaces de noms qui partagent le volume. Lorsque tous les espaces de noms faisant référence au volume sont supprimés, Trident supprime le volume.
Utiliser tridentctl get interroger les volumes subordonnés
En utilisant le[tridentctl utilitaire, vous pouvez exécuter le get commande pour obtenir les volumes subordonnés. Pour plus d'informations, consultez le lien :../trident-reference/tridentctl.html[tridentctl commandes et options].
Usage: tridentctl get [option]
Drapeaux:
-
`-h, --help: Aide pour les volumes. -
`--parentOfSubordinate string`Limiter la requête au volume de la source subordonnée.
-
`--subordinateOf string`Limiter la requête aux subordonnés du volume.
Limites
-
Trident ne peut pas empêcher les espaces de noms de destination d'écrire sur le volume partagé. Vous devriez utiliser le verrouillage de fichiers ou d'autres processus pour empêcher l'écrasement des données du volume partagé.
-
Vous ne pouvez pas révoquer l'accès à la PVC source en retirant le
shareToNamespaceoushareFromNamespaceannotations ou suppression desTridentVolumeReferenceCR. Pour révoquer l'accès, vous devez supprimer le PVC subordonné. -
Les instantanés, les clones et la mise en miroir ne sont pas possibles sur les volumes subordonnés.
Pour plus d'informations
Pour en savoir plus sur l'accès aux volumes entre espaces de noms :
-
Visite"Partage de volumes entre espaces de noms : découvrez l’accès aux volumes inter-espaces de noms" .
-
Regardez la démo sur"NetAppTV" .