Cloner des volumes entre espaces de noms
Avec Trident, vous pouvez créer de nouveaux volumes à l'aide de volumes existants ou de volumesnapshots provenant d'un espace de noms différent au sein du même cluster Kubernetes.
Prérequis
Avant de cloner des volumes, assurez-vous que les backends source et de destination sont du même type et ont la même classe de stockage.
|
|
Le clonage entre espaces de noms est pris en charge uniquement pour les ontap-san et ontap-nas pilotes de stockage. Les clones en lecture seule ne sont pas pris en charge.
|
Démarrage rapide
Vous pouvez configurer le clonage de volume en quelques étapes seulement.
Configurez le PVC source pour cloner le volumeLe 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'un CR dans l'espace de noms de destinationL'administrateur du cluster autorise le propriétaire de l'espace de noms de destination à créer la TridentVolumeReference CR.
Créer TridentVolumeReference dans l'espace de noms de destinationLe propriétaire de l'espace de noms de destination crée la TridentVolumeReference CR pour faire référence au PVC source.
Créez le PVC cloné dans l'espace de noms de destinationLe propriétaire de l'espace de noms de destination crée un PVC pour cloner le PVC de l'espace de noms source.
Configurez les espaces de noms source et de destination
Pour garantir la sécurité, le clonage de volumes entre espaces de noms nécessite la collaboration et l'intervention 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éez le PVC (
pvc1) dans l'espace de noms source (namespace1) qui autorise le partage avec l'espace de noms de destination (namespace2) en utilisant l'annotationcloneToNamespace.kind: PersistentVolumeClaim apiVersion: v1 metadata: name: pvc1 namespace: namespace1 annotations: trident.netapp.io/cloneToNamespace: namespace2 spec: accessModes: - ReadWriteMany storageClassName: trident-csi resources: requests: storage: 100GiTrident crée le PV et son volume de stockage backend.
-
Vous pouvez partager le PVC avec plusieurs espaces de noms à l'aide d'une liste séparée par des virgules. Par exemple,
trident.netapp.io/cloneToNamespace: namespace2,namespace3,namespace4. -
Vous pouvez partager avec tous les espaces de noms en utilisant
*. Par exemple,trident.netapp.io/cloneToNamespace: * -
Vous pouvez mettre à jour le PVC pour inclure l’annotation
cloneToNamespaceà tout moment.
-
-
Administrateur du cluster : Assurez-vous que le RBAC approprié est en place pour accorder l’autorisation au propriétaire de l’espace de noms de destination de créer la TridentVolumeReference CR dans l’espace de noms de destination (
namespace2). -
Propriétaire de l'espace de noms de destination : Créez une 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 (
pvc2) dans l'espace de noms de destination (namespace2) en utilisant lescloneFromPVCoucloneFromSnapshot, etcloneFromNamespaceannotations pour désigner le PVC source.kind: PersistentVolumeClaim apiVersion: v1 metadata: annotations: trident.netapp.io/cloneFromPVC: pvc1 trident.netapp.io/cloneFromNamespace: namespace1 name: pvc2 namespace: namespace2 spec: accessModes: - ReadWriteMany storageClassName: trident-csi resources: requests: storage: 100Gi
Limitations
-
Pour les PVC provisionnés à l'aide des pilotes ontap-nas-economy, les clones en lecture seule ne sont pas pris en charge.