11.5. Options du plan de migration
Vous pouvez exclure, modifier et mapper des composants dans la ressource personnalisée (CR) MigPlan.
11.5.1. Exclusion de ressources Copier lienLien copié sur presse-papiers!
Vous pouvez exclure des ressources (comme des flux d’images, des volumes persistants ou des abonnements) d’un plan de migration Migration Toolkit for Containers (MTC) afin de réduire la charge des ressources à migrer, ou pour migrer des images ou des PV avec un autre outil.
Par défaut, MTC exclut les ressources du catalogue de services et les ressources OLM (Operator Lifecycle Manager) de la migration. Ces ressources font partie du groupe d’API du catalogue de services et du groupe d’API OLM, dont aucune n’est prise en charge pour la migration actuellement.
Procédure
Modifiez le manifeste de ressources personnalisées
MigrationController:$ oc edit migrationcontroller <migration_controller> -n openshift-migrationMettez à jour la section
specen ajoutant des paramètres pour exclure des ressources spécifiques. Pour les ressources qui ne disposent pas de leurs propres paramètres d'exclusion, ajoutez le paramètreadditional_excluded_resources:apiVersion: migration.openshift.io/v1alpha1 kind: MigrationController metadata: name: migration-controller namespace: openshift-migration spec: disable_image_migration: true1 disable_pv_migration: true2 additional_excluded_resources:3 - resource1 - resource2 ...- 1
- Ajoutez
disable_image_migration: truepour exclure les flux d’images de la migration.imagestreamsest ajouté à la liste desressources excluesdansmain.ymllorsque le podMigrationControllerredémarre. - 2
- Ajoutez
disable_pv_migration: truepour exclure les volumes persistants du plan de migration.persistentvolumesetpersistentvolumeclaimssont ajoutés à la listeexcluded_resourcesdansmain.ymllorsque le podMigrationControllerredémarre. La désactivation de la migration des volumes persistants désactive également leur découverte lorsque vous créez le plan de migration. - 3
- Vous pouvez ajouter les ressources OpenShift Container Platform que vous souhaitez exclure à la liste
additional_excluded_resources.
-
Attendez deux minutes pour que le pod
MigrationControllerredémarre afin que les modifications soient appliquées. Vérifiez que la ressource est exclue :
$ oc get deployment -n openshift-migration migration-controller -o yaml | grep EXCLUDED_RESOURCES -A1La sortie contient les ressources exclues :
Exemple de sortie
name: EXCLUDED_RESOURCES value: resource1,resource2,imagetags,templateinstances,clusterserviceversions,packagemanifests,subscriptions,servicebrokers,servicebindings,serviceclasses,serviceinstances,serviceplans,imagestreams,persistentvolumes,persistentvolumeclaims
11.5.2. Mappage des espaces de nommage Copier lienLien copié sur presse-papiers!
Si vous mappez des espaces de nommage dans la ressource personnalisée (CR) MigPlan, vous devez vous assurer qu’ils ne sont pas dupliqués sur les clusters source ou de destination, car les plages UID et GID des espaces de nommage sont copiées pendant la migration.
Deux espaces de nommage source mappés sur le même espace de nommage de destination
spec:
namespaces:
- namespace_2
- namespace_1:namespace_2
Si vous souhaitez que l’espace de nommage source soit mappé sur un espace de nommage du même nom, il n’est pas nécessaire de créer un mappage. Par défaut, les espaces de nommage source et cible ont le même nom.
Mappage incorrect des espaces de nommage
spec:
namespaces:
- namespace_1:namespace_1
Référence correcte à l’espace de nommage
spec:
namespaces:
- namespace_1
11.5.3. Exclusion des revendications de volumes persistants (PVC) Copier lienLien copié sur presse-papiers!
Pour sélectionner des revendications de volumes persistants (PVC) pour la migration d’état, vous devez exclure celles que vous ne souhaitez pas migrer. Pour exclure des PVC, définissez le paramètre spec.persistentVolumes.pvc.selection.action de la ressource personnalisée (CR) MigPlan après la découverte des volumes persistants (PV).
Conditions préalables
-
La ressource personnalisée
MigPlanse trouve dans l’étatReady.
Procédure
Ajoutez le paramètre
spec.persistentVolumes.pvc.selection.actionà la ressource personnaliséeMigPlanet définissez-le surskip:apiVersion: migration.openshift.io/v1alpha1 kind: MigPlan metadata: name: <migplan> namespace: openshift-migration spec: ... persistentVolumes: - capacity: 10Gi name: <pv_name> pvc: ... selection: action: skip
11.5.4. Mappage de revendications de volumes persistants Copier lienLien copié sur presse-papiers!
Vous pouvez migrer les données de volume persistant (PV) du cluster source vers des revendications de volumes persistants (PVC) qui ont déjà été mises en service dans le cluster de destination de la ressource personnalisée MigPlan en mappant les PVC. Ce mappage garantit la synchronisation des PVC de destination des applications migrées avec les PVC sources.
Pour mapper les PVC, mettez à jour le paramètre spec.persistentVolumes.pvc.name dans la ressource personnalisée (CR) MigPlan après la découverte des volumes persistants.
Conditions préalables
-
La ressource personnalisée
MigPlanse trouve dans l’étatReady.
Procédure
Mettre à jour le paramètre
spec.persistentVolumes.pvc.namedans la ressource personnaliséeMigPlan:apiVersion: migration.openshift.io/v1alpha1 kind: MigPlan metadata: name: <migplan> namespace: openshift-migration spec: ... persistentVolumes: - capacity: 10Gi name: <pv_name> pvc: name: <source_pvc>:<destination_pvc>1 - 1
- Spécifiez la PVC sur le cluster source et celle sur le cluster de destination. Si la PVC de destination n’existe pas, elle sera créée. Vous pouvez utiliser ce mappage pour renommer la PVC lors de la migration.
11.5.5. Modification des attributs des volumes persistants Copier lienLien copié sur presse-papiers!
Une fois que vous avez créé une ressource personnalisée (CR) MigPlan, la CR MigrationController découvre les volumes persistants (PV). Le bloc spec.persistentVolumes et le bloc status.destStorageClasses sont ajoutés à la ressource personnalisée MigPlan.
Vous pouvez modifier les valeurs du bloc spec.persistentVolumes.selection. Si vous modifiez les valeurs en dehors du bloc spec.persistentVolumes.selection, elles sont écrasées lorsque la CR MigPlan est rapprochée par la CR MigrationController.
La valeur par défaut du paramètre spec.persistentVolumes.selection.storageClass est déterminée par la logique suivante :
-
Si le volume persistant du cluster source est Gluster ou NFS, la valeur par défaut est soit
cephfs, pouraccessMode: ReadWriteMany, soitcephrbd, pouraccessMode: ReadWriteOnce. -
Si le volume persistant n’est ni Gluster ni NFS ou si
cephfsoucephrbdn’est pas disponible, la valeur par défaut est une classe de stockage pour le même fournisseur. - Si une classe de stockage pour le même fournisseur n’est pas disponible, la valeur par défaut est la classe de stockage par défaut du cluster de destination.
Vous pouvez remplacer la valeur storageClass par la valeur de n’importe quel paramètre name dans le bloc status.destStorageClasses de la ressource personnalisée MigPlan.
Si la valeur storageClass est vide, aucune classe de stockage ne sera associée au volume persistant après la migration. Cette option est appropriée si, par exemple, vous voulez déplacer le volume persistant vers un volume NFS sur le cluster de destination.
Conditions préalables
-
La ressource personnalisée
MigPlanse trouve dans l’étatReady.
Procédure
Modifiez les valeurs
spec.persistentVolumes.selectiondans la ressource personnaliséeMigPlan:apiVersion: migration.openshift.io/v1alpha1 kind: MigPlan metadata: name: <migplan> namespace: openshift-migration spec: persistentVolumes: - capacity: 10Gi name: pvc-095a6559-b27f-11eb-b27f-021bddcaf6e4 proposedCapacity: 10Gi pvc: accessModes: - ReadWriteMany hasReference: true name: mysql namespace: mysql-persistent selection: action: <copy>1 copyMethod: <filesystem>2 verify: true3 storageClass: <gp2>4 accessMode: <ReadWriteMany>5 storageClass: cephfs- 1
- Les valeurs autorisées sont
move,copyetskip. Si une seule action est prise en charge, cette action est la valeur par défaut. Si plusieurs actions sont prises en charge, la valeur par défaut estcopy. - 2
- Les valeurs autorisées sont
snapshotetfilesystem. La valeur par défaut estfilesystem. - 3
- Le paramètre
verifyest affiché si vous sélectionnez l’option de vérification pour la copie du système de fichiers dans la console Web MTC. Vous pouvez le définir surfalse. - 4
- Vous pouvez remplacer la valeur par défaut par la valeur de n’importe quel paramètre
namedans le blocstatus.destStorageClassesde la ressource personnaliséeMigPlan. Si aucune valeur n’est spécifiée, aucune classe de stockage ne sera associée au volume persistant après la migration. - 5
- Les valeurs autorisées sont
ReadWriteOnceetReadWriteMany. Si cette valeur n’est pas spécifiée, la valeur par défaut est le mode d’accès du PVC du cluster source. Vous ne pouvez modifier le mode d’accès que dans la ressource personnaliséeMigPlan. Vous ne pouvez pas le modifier en utilisant la console Web MTC.
Ressources supplémentaires
-
Pour plus d'informations sur les actions
moveetcopy, voir le flux de travail MTC. -
Pour plus de détails sur l'action
skip, voir Exclusion des PVC de la migration. - Pour plus d'informations sur les méthodes de copie du système de fichiers et des instantanés, voir À propos des méthodes de copie de données.
11.5.6. Effectuer une migration d'état des objets Kubernetes à l'aide de l'API MTC Copier lienLien copié sur presse-papiers!
Après avoir migré toutes les données PV, vous pouvez utiliser l'API Migration Toolkit for Containers (MTC) pour effectuer une migration d'état unique des objets Kubernetes qui constituent une application.
Pour ce faire, vous configurez les champs de ressources personnalisées (CR) MigPlan pour fournir une liste de ressources Kubernetes avec un sélecteur d'étiquettes supplémentaire pour filtrer davantage ces ressources, puis vous effectuez une migration en créant une CR MigMigration. La ressource MigPlan est fermée après la migration.
La sélection des ressources Kubernetes est une fonctionnalité réservée à l'API. Vous devez mettre à jour la CR MigPlan et créer une CR MigMigration pour elle à l'aide de la CLI. La console web MTC ne prend pas en charge la migration des objets Kubernetes.
Après la migration, le paramètre closed de la CR MigPlan est défini sur true. Vous ne pouvez pas créer une autre CR MigMigration pour cette CR MigPlan.
Vous ajoutez des objets Kubernetes à la CR MigPlan en utilisant l’une des options suivantes :
-
Ajout des objets Kubernetes à la section
includedResources. Lorsque le champincludedResourcesest spécifié dans le CRMigPlan, le plan prend une liste degroup-kinden entrée. Seules les ressources présentes dans la liste sont incluses dans la migration. -
Ajout du paramètre facultatif
labelSelectorpour filtrer les ressourcesincludedResourcesdans le champMigPlan. Lorsque ce champ est spécifié, seules les ressources correspondant au sélecteur d'étiquette sont incluses dans la migration. Par exemple, vous pouvez filtrer une liste de ressourcesSecretetConfigMapen utilisant l'étiquetteapp: frontendcomme filtre.
Procédure
Mettez à jour le CR
MigPlanpour inclure les ressources Kubernetes et, éventuellement, pour filtrer les ressources incluses en ajoutant le paramètrelabelSelector:Pour mettre à jour le CR
MigPlanafin d'inclure les ressources Kubernetes :apiVersion: migration.openshift.io/v1alpha1 kind: MigPlan metadata: name: <migplan> namespace: openshift-migration spec: includedResources: - kind: <kind>1 group: "" - kind: <kind> group: ""- 1
- Indiquez l’objet Kubernetes ;
SecretouConfigMap, par exemple.
Facultatif : Pour filtrer les ressources incluses en ajoutant le paramètre
labelSelector:apiVersion: migration.openshift.io/v1alpha1 kind: MigPlan metadata: name: <migplan> namespace: openshift-migration spec: includedResources: - kind: <kind>1 group: "" - kind: <kind> group: "" ... labelSelector: matchLabels: <label>2
Créer un CR
MigMigrationpour migrer les ressources Kubernetes sélectionnées. Vérifiez que le bon siteMigPlanest référencé dansmigPlanRef:apiVersion: migration.openshift.io/v1alpha1 kind: MigMigration metadata: generateName: <migplan> namespace: openshift-migration spec: migPlanRef: name: <migplan> namespace: openshift-migration stage: false