Créer un plan de migration

Pour commencer à migrer des VM, vous devez créer une migration. Cette opération vous permet d'obtenir un objet de plan de migration. Un examen plus approfondi et une personnalisation du plan généré sont généralement nécessaires avant l'exécution de la migration.

Une migration est l'objet central avec lequel vous effectuez des actions de migration, et surveillez les activités et l'état de la migration à l'aide de migctl et de Google Cloud Console. L'objet de migration est mis en œuvre en tant que définition de ressource personnalisée (CRD, Custom Resource Definition) Kubernetes. Il est contenu avec des ressources supplémentaires telles qu'un PersistentVolumeClaim Kubernetes dans le plan de migration.

Avant de commencer

  • Ajoutez une source de migration.
  • Recherchez l'ID d'instance de machine virtuelle (VM), comme décrit dans la section suivante.
  • Lorsque vous utilisez Compute Engine comme source de migration, arrêtez la VM source avant de créer une migration. Une fois l'objet de migration créé, vous pouvez redémarrer la VM.

Trouver l'ID de la VM

Vous pouvez trouver l'ID de VM en parcourant l'inventaire des VM ou en le recherchant manuellement, en fonction du type de source.

Rechercher l'ID à l'aide de l'inventaire des VM

  • Lorsque vous utilisez migctl, vous pouvez afficher la liste des VM en exécutant la commande suivante :

    migctl source list-vms <name> [ --refresh ] [ --wide ]
    
  • Lorsque vous utilisez la console Google Cloud, accédez au type de source. Vous trouverez une table répertoriant toutes les VM de ce type.

Trouver manuellement l'ID

Vous pouvez trouver l'ID de VM manuellement par type de source :

Compute Engine

VMware

  • vmId : ID ou nom de la VM à migrer, tel qu'il est connu sur la plate-forme source. Vous pouvez utiliser l'une des valeurs ci-dessous.

    • Nom de la VM. Si vous êtes sûr que chaque nom de VM est unique dans votre déploiement VMware, le nom de la VM suffit. Si des noms de VM peuvent être dupliqués, utilisez l'ID de la VM comme décrit ci-dessous.

      Vous pouvez obtenir le nom de la VM à partir du client Web vSphere, comme illustré dans l'image suivante.

    • ID de la VM de vSphere, également appelé MoRef. Il est visible à partir de l'URL du client Web vSphere lors de la sélection de la VM.

      L'ID MoRef se trouve dans l'URL de vSphere.

      Vous pouvez également rechercher l'ID MoRef à l'aide de PowerCLI.

Exigences concernant les noms

Vous attribuez un nom à une migration lorsque vous la créez dans Migrate to Containers. Le nom doit répondre aux exigences suivantes :

  • contenir au maximum 63 caractères ;
  • ne contenir que des caractères alphanumériques minuscules ou des tirets (-) ;
  • commencer par un caractère alphanumérique ;
  • se terminer par un caractère alphanumérique.

Charges de travail compatibles

Créer une migration

Charges de travail Linux et Windows

Créez une migration à l'aide de l'outil migctl ou de Google Cloud Console.

migctl

  1. Arrêtez la VM. La VM doit être arrêtée pour que vous puissiez créer une migration. Une fois la migration terminée, vous pouvez redémarrer la VM.

  2. Créez la migration :

    migctl migration create my-migration --source my-src --vm-id my-id --type server-type

    --vm-id spécifie le nom de l'instance de VM, comme indiqué dans la console du type de source. Où --type est --type=windows-iis-container ou linux-system-container.

Console

  1. Si la source de migration est une VM Compute Engine, arrêtez la VM. La VM doit être arrêtée pour que vous puissiez créer une migration. Une fois la migration terminée, vous pouvez redémarrer la VM.

  2. Ouvrez la page "Migrate to Containers" dans la console Google Cloud.

    Accéder à la page Migrate to Containers

  3. Cliquez sur l'onglet Migrations pour afficher un tableau contenant les migrations disponibles.

  4. Cliquez sur Créer une migration.

  5. Saisissez le nom de la migration.

  6. Sélectionnez la source de migration que vous avez créée dans Ajouter une source de migration.

  7. Définissez le type de charge de travail sur Conteneur système basé sur des images ou Conteneur Windows IIS.

  8. Saisissez l'ID de la VM source. Consultez la section Avant de commencer pour en savoir plus sur la détermination de l'ID de VM.

  9. Cliquez sur Créer une migration.

    Une fois la migration terminée, la colonne État affiche le plan de migration généré.

CRD

  1. Pour définir une migration, créez un fichier de migration appelé my-migration.yaml.

    Dans ce fichier, le champ name sous sourceProviderRef spécifie le nom d'un objet SourceProvider précédemment créé et le champ sourceId spécifie le nom de l'instance Compute Engine. Type sera --type=windows-iis-container ou linux-system-container.

    apiVersion: anthos-migrate.cloud.google.com/v1
    kind: Migration
    metadata:
     name: my-migration
     namespace: v2k-system
    spec:
     type: linux-system-container
     sourceSnapshotTemplate:
       spec:
         sourceProviderRef:
           name: my-ce-src
         sourceId: my-id
  2. Si vous migrez une VM Compute Engine, arrêtez-la. La VM doit être arrêtée pour que vous puissiez créer une migration. Une fois la migration terminée, vous pouvez redémarrer la VM.

  3. Appliquez le fichier :

    kubectl apply -f my-migration.yaml

Charges de travail Tomcat

Spécifier les paramètres Tomcat

Vous devez spécifier manuellement les valeurs pour CATALINA_BASE et CATALINA_HOME.

migctl

  1. Arrêtez la VM Compute Engine. La VM doit être arrêtée pour que vous puissiez créer une migration. Une fois la migration terminée, vous pouvez redémarrer la VM.

  2. Créez la migration :

    migctl migration create my-migration --source my-ce-src --vm-id my-id
    --type tomcat-container --parameters catalina-base=/catalina/base/path1:/catalina/base/path2,catalina-home=/catalina/home/path/,java-version=11
    
    • --vm-id spécifie le nom de l'instance, comme indiqué dans la console du service.
    • catalina-base spécifie une liste de valeurs CATALINA_BASE séparées par deux-points.
    • catalina-home spécifie la valeur de CATALINA_HOME.
    • java-version correspond au paramètre facultatif qui spécifie la version Java qui sera utilisée par le conteneur.

CRD

  1. Pour définir une migration, créez un fichier Migration nommé my-migration.yaml.

    Dans ce fichier, définissez les champs suivants :

    • sourceProvider : spécifie le nom d'un objet SourceProvider créé précédemment.
    • sourceId : spécifie le nom de l'instance de VM Compute Engine.
    • parameters : définit les paramètres spécifiques aux charges de travail Tomcat.

    Voici un exemple de fichier de migration avec ces valeurs de champ définies :

    apiVersion: anthos-migrate.cloud.google.com/v1
    kind: Migration
    metadata:
     name: my-migration
     namespace: v2k-system
    spec:
     type: tomcat-container
     sourceSnapshotTemplate:
       spec:
         sourceProviderRef:
           name: my-ce-src
         sourceId: my-id
         parameters:
         - name: catalina-base
           value: /opt/tomcat
         - name: catalina-home
           value: /opt/tomcat
  2. Si vous migrez une VM Compute Engine, arrêtez-la. La VM doit être arrêtée pour que vous puissiez créer une migration. Une fois la migration terminée, vous pouvez redémarrer la VM.

  3. Appliquez le fichier :

    kubectl apply -f my-migration.yaml

Charges de travail traditionnelles WebSphere

Spécifier WAS_HOME

La variable d'environnement WAS_HOME spécifie l'emplacement d'installation de WAS traditionnel, tel que /opt/IBM/WebSphere/AppServer/. Migrate to Containers utilise cette valeur lorsque vous créez une migration pour exécuter des scripts qui extraient des informations sur une application et pour déterminer le chemin d'un profil d'application. Si Migrate to Containers ne parvient pas à localiser le dossier d'installation, vous pouvez définir la valeur de WAS_HOME.

migctl

  1. Arrêtez la VM. La VM doit être arrêtée pour que vous puissiez créer une migration. Une fois la migration terminée, vous pouvez redémarrer la VM.

  2. Créez la migration :

    migctl migration create my-migration --source my-was-src --vm-id my-id
    --type websphere-traditional-container --parameters was-home=/opt/IBM/WebSphere/AppServer/
    

    --vm-id spécifie le nom de l'instance, comme indiqué dans la console de service.

CRD

  1. Pour définir une migration, créez un fichier Migration nommé my-migration.yaml.

    Dans ce fichier, définissez les champs suivants :

    • sourceProvider : spécifie le nom d'un objet SourceProvider créé précédemment.
    • sourceId : spécifie le nom de l'instance de VM Compute Engine.
    • parameters : définit les paramètres spécifiques aux charges de travail WebSphere.

    Voici un exemple de fichier de migration avec ces valeurs de champ définies :

    apiVersion: anthos-migrate.cloud.google.com/v1
    kind: Migration
    metadata:
     name: my-migration
     namespace: v2k-system
    spec:
     type: websphere-traditional-container
     sourceSnapshotTemplate:
       spec:
         sourceProviderRef:
           name: my-ce-src
         sourceId: my-id
         parameters:
         - name: was_home
           value: /opt/IBM/WebSphere/AppServer/
  2. Si vous migrez une VM Compute Engine, arrêtez-la. La VM doit être arrêtée pour que vous puissiez créer une migration. Une fois la migration terminée, vous pouvez redémarrer la VM.

  3. Appliquez le fichier :

    kubectl apply -f my-migration.yaml

Charges de travail JBoss

Créez une migration à l'aide de l'outil migctl ou de Google Cloud Console.

migctl

  1. Arrêtez la VM. La VM doit être arrêtée pour que vous puissiez créer une migration. Une fois la migration terminée, vous pouvez redémarrer la VM.

  2. Créez la migration :

    migctl migration create my-migration --source my-src --vm-id my-id --type=jboss-container --parameters jboss-home=/opt/jboss

    --vm-id spécifie le nom de l'instance de VM, comme indiqué dans la console du type de source.

Console

  1. Si la source de migration est une VM Compute Engine, arrêtez la VM. La VM doit être arrêtée pour que vous puissiez créer une migration. Une fois la migration terminée, vous pouvez redémarrer la VM.

  2. Ouvrez la page "Migrate to Containers" dans la console Google Cloud.

    Accéder à la page Migrate to Containers

  3. Cliquez sur l'onglet Migrations pour afficher un tableau contenant les migrations disponibles.

  4. Cliquez sur Créer une migration.

  5. Saisissez le nom de la migration.

  6. Sélectionnez la source de migration que vous avez créée dans Ajouter une source de migration.

  7. Définissez le Type de charge de travail sur Conteneur JBoss.

  8. Saisissez le nom de l'instance source. Consultez la section Avant de commencer pour en savoir plus sur la détermination du nom de l'instance.

  9. Définissez le paramètre JBOSS_HOME, puis utilisez le chemin d'installation de JBoss.

  10. Cliquez sur Créer une migration.

    Une fois la migration terminée, la colonne État affiche le plan de migration généré.

CRD

  1. Pour définir une migration, créez un fichier Migration nommé my-migration.yaml.

    Dans ce fichier, le champ name sous sourceProviderRef spécifie le nom d'un objet SourceProvider précédemment créé et le champ sourceId spécifie le nom de l'instance Compute Engine. Dans le champ type, saisissez jboss-container. Vous pouvez ajouter une liste de paramètres de découverte sous discoveryParameters. Chaque paramètre discoveryParameters possède deux propriétés : name et value. Lors de la création d'une migration JBoss, le paramètre discoveryParameters nommé jboss-home, qui spécifie le chemin d'accès au répertoire d'accueil JBoss en tant que value, est obligatoire.

    apiVersion: anthos-migrate.cloud.google.com/v1
    kind: Migration
    metadata:
      name: my-migration
      namespace: v2k-system
    spec:
      type: jboss-container2
      discoveryParameters:
      - name: jboss-home
        value: /path-to-jboss-home
      sourceSnapshotTemplate:
        spec:
          sourceProviderRef:
            name: my-ce-src
          sourceId: my-id
    
  2. Si vous migrez une VM Compute Engine, arrêtez-la. La VM doit être arrêtée pour que vous puissiez créer une migration. Une fois la migration terminée, vous pouvez redémarrer la VM.

  3. Appliquez le fichier :

    kubectl apply -f my-migration.yaml

Charges de travail Apache

Créez une migration à l'aide de l'outil migctl ou de Google Cloud Console.

migctl

  1. Arrêtez la VM. La VM doit être arrêtée pour que vous puissiez créer une migration. Une fois la migration terminée, vous pouvez redémarrer la VM.

  2. Créez la migration :

    migctl migration create my-migration --source my-src --vm-id my-id --type=apache-container

    --vm-id spécifie le nom de l'instance de VM, comme indiqué dans la console du type de source.

Console

  1. Si la source de migration est une VM Compute Engine, arrêtez la VM. La VM doit être arrêtée pour que vous puissiez créer une migration. Une fois la migration terminée, vous pouvez redémarrer la VM.

  2. Ouvrez la page "Migrate to Containers" dans la console Google Cloud.

    Accéder à la page Migrate to Containers

  3. Cliquez sur l'onglet Migrations pour afficher un tableau contenant les migrations disponibles.

  4. Cliquez sur Créer une migration.

  5. Saisissez le nom de la migration.

  6. Sélectionnez la source de migration que vous avez créée dans Ajouter une source de migration.

  7. Définissez le Type de charge de travail sur Conteneur Apache.

  8. Saisissez l'ID de la VM source. Consultez la section Avant de commencer pour en savoir plus sur la détermination de l'ID de VM.

  9. Cliquez sur Créer une migration.

    Une fois la migration terminée, la colonne État affiche le plan de migration généré.

CRD

  1. Pour définir une migration, créez un fichier Migration nommé my-migration.yaml.

    Dans ce fichier, le champ name sous sourceProviderRef spécifie le nom d'un objet SourceProvider précédemment créé et le champ sourceId spécifie le nom de l'instance Compute Engine. Dans le champ type, saisissez apache-container.

    apiVersion: anthos-migrate.cloud.google.com/v1
    kind: Migration
    metadata:
     name: my-migration
     namespace: v2k-system
    spec:
     type: apache-container
     sourceSnapshotTemplate:
       spec:
         sourceProviderRef:
           name: my-ce-src
         sourceId: my-id
  2. Si vous migrez une VM Compute Engine, arrêtez-la. La VM doit être arrêtée pour que vous puissiez créer une migration. Une fois la migration terminée, vous pouvez redémarrer la VM.

  3. Appliquez le fichier :

    kubectl apply -f my-migration.yaml

Charges de travail WordPress

Créez une migration à l'aide de l'outil migctl ou de Google Cloud Console.

migctl

  1. Arrêtez la VM. La VM doit être arrêtée pour que vous puissiez créer une migration. Une fois la migration terminée, vous pouvez redémarrer la VM.

  2. Créez la migration :

    migctl migration create my-migration --source my-src --vm-id my-id --type=wordpress-container

    --vm-id spécifie le nom de l'instance de VM, comme indiqué dans la console du type de source.

Console

  1. Si la source de migration est une VM Compute Engine, arrêtez la VM. La VM doit être arrêtée pour que vous puissiez créer une migration. Une fois la migration terminée, vous pouvez redémarrer la VM.

  2. Ouvrez la page "Migrate to Containers" dans la console Google Cloud.

    Accéder à la page Migrate to Containers

  3. Cliquez sur l'onglet Migrations pour afficher un tableau contenant les migrations disponibles.

  4. Cliquez sur Créer une migration.

  5. Saisissez le nom de la migration.

  6. Sélectionnez la source de migration que vous avez créée dans Ajouter une source de migration.

  7. Définissez le Type de charge de travail sur Conteneur WordPress.

  8. Saisissez l'ID de la VM source. Consultez la section Avant de commencer pour en savoir plus sur la détermination de l'ID de VM.

  9. Cliquez sur Créer une migration.

    Une fois la migration terminée, la colonne État affiche le plan de migration généré.

CRD

  1. Pour définir une migration, créez un fichier Migration nommé my-migration.yaml.

    Dans ce fichier, le champ name sous sourceProviderRef spécifie le nom d'un objet SourceProvider précédemment créé et le champ sourceId spécifie le nom de l'instance Compute Engine. Dans le champ type, saisissez wordpress-container.

    apiVersion: anthos-migrate.cloud.google.com/v1
    kind: Migration
    metadata:
     name: my-migration
     namespace: v2k-system
    spec:
     type: wordpress-container
     sourceSnapshotTemplate:
       spec:
         sourceProviderRef:
           name: my-ce-src
         sourceId: my-id
  2. Si vous migrez une VM Compute Engine, arrêtez-la. La VM doit être arrêtée pour que vous puissiez créer une migration. Une fois la migration terminée, vous pouvez redémarrer la VM.

  3. Appliquez le fichier :

    kubectl apply -f my-migration.yaml

Surveiller la création de la migration

Utilisez l'outil migctl ou Google Cloud Console pour surveiller la progression de la création de la migration.

migctl

  1. Attendez la fin de la phase de création de la migration :

    migctl migration status my-migration
    
    NAME           CURRENT-OPERATION      PROGRESS   STEP                   STATUS   AGE
    my-migration   GenerateMigrationPlan  [1/3]      CreateSourceSnapshots  Running  13s 
  2. Si vous migrez une VM Compute Engine, redémarrez-la. Une VM arrêtée n'est pas nécessaire après cette étape.

Console

Lorsque l'état de migration indique que la migration a été créée, passez à l'étape suivante :

  1. Ouvrez la page "Migrate to Containers" dans la console Google Cloud.

    Accéder à la page Migrate to Containers

  2. Cliquez sur l'onglet Migrations pour afficher un tableau contenant les migrations disponibles.

  3. Pour afficher l'état d'une migration, procédez comme suit :

    • Observez la colonne État de la ligne correspondant à votre migration.

    • Cliquez sur le nom de la migration. La page Informations sur la migration s'affiche. Cliquez sur l'onglet Surveillance pour afficher l'état détaillé, ou sur l'onglet Événements pour afficher les événements de migration.

  4. Une fois la migration terminée, l'état affiche Plan de migration généré.

  5. Si vous migrez une VM Compute Engine, redémarrez-la. Une VM arrêtée n'est pas nécessaire après cette étape.

CRD

Utilisez kubectl pour obtenir les informations et l'état de la migration MigrationStatus en spécifiant un chemin JSONPath dans le champ correspondant.

  1. Attendez la fin de la phase de création de la migration :

    Utilisez deux commandes kubectl wait, l'une pour attendre la condition "Prêt" et l'autre pour la condition "Échec". La phase de création du plan de migration s'exécute jusqu'à ce que la première condition soit remplie.

    unset pids; for cond in "Ready" "Failed"; do kubectl wait migrations.anthos-migrate.cloud.google.com my-migration -n v2k-system --for condition=$cond --timeout=15m & pids+=($!); done; wait -p met_pid -n ${pids[@]}
    kill ${pids[@]/$met_pid} # terminate the process that did not complete.
    

    Une fois l'exécution de la commande d'attente terminée, l'opération est terminée, et vous pouvez passer à l'étape suivante.

  2. Obtenez l'état du plan de migration :

    kubectl get migrations.anthos-migrate.cloud.google.com -n v2k-system -o jsonpath={.status.conditions[?(@.type==\"Ready\")].status} my-migration

    Renvoie True lorsque le plan de migration est prêt ou False lorsqu'il a échoué.

  3. Lorsque la phase de création de la migration échoue, utilisez la commande suivante pour obtenir le message d'erreur :

    kubectl get migrations.anthos-migrate.cloud.google.com -n v2k-system  -o jsonpath={.status.conditions[?(@.type=="Ready")].message} my-migration

  4. Si vous migrez une VM Compute Engine, redémarrez-la. Une VM arrêtée n'est pas nécessaire après cette étape.

Étapes suivantes