9.4. Options du plan de migration
Vous pouvez exclure, modifier et mapper des composants dans la ressource personnalisée (CR) MigPlan.
9.4.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
9.4.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
9.4.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
9.4.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.
9.4.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.
9.4.6. Conversion des classes de stockage dans la console web MTC Copier lienLien copié sur presse-papiers!
Vous pouvez convertir la classe de stockage d'un volume persistant (PV) en le migrant au sein du même cluster. Pour ce faire, vous devez créer et exécuter un plan de migration dans la console web Migration Toolkit for Containers (MTC).
Conditions préalables
-
Vous devez être connecté en tant qu'utilisateur disposant des privilèges
cluster-adminsur le cluster sur lequel MTC est exécuté. - Vous devez ajouter le cluster à la console web MTC.
Procédure
- Dans le volet de navigation de gauche de la console web OpenShift Container Platform, cliquez sur Projects.
Dans la liste des projets, cliquez sur votre projet.
La page Project details s'ouvre.
- Cliquez sur le nom DeploymentConfig. Notez le nom du pod en cours d'exécution.
- Ouvrez l'onglet YAML du projet. Trouvez les PV et notez les noms de leurs réclamations de volume persistantes (PVC) correspondantes.
- Dans la console Web MTC, cliquez sur Migration plans.
- Cliquez sur Add migration plan.
Saisissez le nom du plan dans le champ Plan name.
Le nom du plan de migration doit contenir de 3 à 63 caractères alphanumériques minuscules (
a-z, 0-9) et ne doit pas contenir d'espaces ni de traits de soulignement (_).- Dans le menu Migration type, sélectionnez Storage class conversion.
- Dans la liste Source cluster, sélectionnez le cluster souhaité pour la conversion de la classe de stockage.
Cliquez sur Next.
La page Namespaces s'ouvre.
- Sélectionnez le projet souhaité.
Cliquez sur Next.
La page Persistent volumes s'ouvre. La page affiche les PV du projet, tous sélectionnés par défaut.
- Pour chaque PV, sélectionnez la classe de stockage cible souhaitée.
Cliquez sur Next.
L'assistant valide le nouveau plan de migration et indique qu'il est prêt.
Cliquez sur Close.
Le nouveau plan apparaît sur la page Migration plans.
Pour lancer la conversion, cliquez sur le menu des options du nouveau plan.
Sous Migrations, deux options sont affichées, Stage et Cutover.
NoteLa migration de basculement met à jour les références PVC dans les applications.
La migration d'étape ne met pas à jour les références PVC dans les applications.
Sélectionnez l'option souhaitée.
Selon l'option choisie, la notification Stage migration ou Cutover migration apparaît.
Cliquez sur Migrate.
Selon l'option choisie, le message Stage started ou Cutover started apparaît.
Pour connaître l'état de la migration en cours, cliquez sur le numéro dans la colonne Migrations.
La page Migrations s'ouvre.
Pour obtenir plus de détails sur la migration en cours et suivre sa progression, sélectionnez la migration dans la colonne Type.
La page Migration details s'ouvre. Lorsque la migration progresse jusqu'à l'étape DirectVolume et que l'état de l'étape devient
Running Rsync Pods to migrate Persistent Volume data, vous pouvez cliquer sur View details et voir l'état détaillé des copies.- Dans le fil d'Ariane, cliquez sur Stage ou Cutover et attendez que toutes les étapes soient terminées.
Ouvrez l'onglet PersistentVolumeClaims de la console web OpenShift Container Platform.
Vous pouvez voir de nouveaux PVC avec les noms des PVC initiaux mais se terminant par
new, qui utilisent la classe de stockage cible.- Dans le volet de navigation de gauche, cliquez sur Pods. Constatez que le pod de votre projet fonctionne à nouveau.
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.
9.4.7. 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