Crea un plan de migración

Para comenzar a migrar las VM, debes crear una migración. Esto da como resultado un objeto del plan de migración. Por lo general, se requiere una revisión adicional y la personalización del plan generado antes de continuar con la ejecución de la migración.

Una migración es el objeto central con el que realizas acciones de migración, y supervisas el estado y las actividades de migración con migctl y la consola de Google Cloud. El objeto de migración se implementa como una definición de recurso personalizado (CRD) de Kubernetes, y se encuentra junto con recursos adicionales como un PersistentVolumeClaim de Kubernetes en el plan de migración.

Antes de comenzar

  • Agrega una fuente de migración
  • Busca el ID de la instancia de máquina virtual (VM), como se describe en la siguiente sección.
  • Cuando uses Compute Engine como la fuente de migración, detén la VM de origen antes de crear una migración. Después de crear el objeto de migración, puedes reiniciar la VM.

Busca el ID de VM

Para buscar el ID de VM, navega por el inventario de VM o búscalo de forma manual, según el tipo de fuente.

Busca el ID con el inventario de VM

  • Cuando uses migctl, puedes ver una lista de VM si ejecutas el siguiente comando:

    migctl source list-vms <name> [ --refresh ] [ --wide ]
    
  • Cuando uses la consola de Google Cloud, navega al tipo de fuente, encontrarás una tabla que enumera todas las VM de ese tipo.

Busca el ID de forma manual

Puedes buscar el ID de VM de forma manual por tipo de fuente:

Compute Engine

VMware

  • vmId: Especifica el ID o nombre de la VM que se migrará, tal como se la conoce en la plataforma de origen. Puedes usar uno de los siguientes valores.

    • El nombre de la VM: Si estás seguro de que no hay nombres de VM repetidos en la implementación de VMware, el nombre de la VM funcionará. Si es posible que los nombres de las VM estén duplicados, usa el ID de la VM como se describe a continuación.

      Puedes obtener el nombre de la VM desde el cliente web de vSphere, como se muestra en la siguiente imagen.

    • El ID de VM de vSphere (también llamado MoRef): Esto se puede ver desde la URL del cliente web de vSphere cuando se selecciona la VM.

      El MoRef está en la URL de vSphere

      También puedes encontrar el MoRef mediante PowerCLI.

Requisitos de nombres

Debes asignar un nombre a una migración cuando la creas en Migrate to Containers. El nombre debe cumplir con los siguientes requisitos:

  • Debe contener 63 caracteres como máximo.
  • Debe contener solo caracteres alfanuméricos en minúscula o “-” (guion).
  • Debe comenzar con un carácter alfanumérico.
  • Debe terminar con un carácter alfanumérico.

Cargas de trabajo admitidas

Cree una migración

Cargas de trabajo de Linux y Windows

Crea una migración mediante la herramienta migctl o la consola de Google Cloud.

migctl

  1. Detenga la VM. La VM debe detenerse para crear una migración. Una vez finalizada la migración, puedes reiniciar la VM.

  2. Crea la migración:

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

    En el ejemplo anterior, --vm-id especifica el nombre de la instancia de VM como se muestra en la consola de tipo de origen. En el que --type es --type=windows-iis-container o linux-system-container.

Consola

  1. Si la fuente de migración es una VM de Compute Engine, detén la VM de Compute Engine. La VM debe detenerse para crear una migración. Una vez finalizada la migración, puedes reiniciar la VM.

  2. Abre la página Migrate to Containers en la consola de Google Cloud.

    Ir a la página Migrate to Containers

  3. Haz clic en la pestaña Migraciones para ver una tabla con las migraciones disponibles.

  4. Haz clic en Crear migración.

  5. Ingresa el Nombre de la migración.

  6. Selecciona la fuente de migración que creaste en Agrega una fuente de migración.

  7. Configura el Tipo de carga de trabajo como Contenedor de sistema basado en imagen o Contenedor de Windows IIS.

  8. Ingresa el ID de VM de origen. Consulta Antes de comenzar para obtener más información sobre cómo se determina el ID de la VM.

  9. Haz clic en Crear migración.

    Cuando se completa la creación de la migración, la columna Estado muestra Migration plan generated.

CRD

  1. Para definir una migración, crea un archivo de migración llamado my-migration.yaml.

    En este archivo, el campo name en sourceProviderRef especifica el nombre de un SourceProvider creado con anterioridad y el campo sourceId especifica el nombre de la instancia de Compute Engine. Type será --type=windows-iis-container o 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 migras una VM de Compute Engine, detén la VM. La VM debe detenerse para crear una migración. Una vez finalizada la migración, puedes reiniciar la VM.

  3. Aplica el siguiente archivo:

    kubectl apply -f my-migration.yaml

Cargas de trabajo de Tomcat

Especifica los parámetros de Tomcat

Debes especificar de forma manual los valores para CATALINA_BASE y CATALINA_HOME.

migctl

  1. Detén la VM de Compute Engine. La VM debe detenerse para crear una migración. Una vez finalizada la migración, puedes reiniciar la VM.

  2. Crea la migración:

    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: Especifica el nombre de la instancia como se muestra en la consola de servicio.
    • catalina-base especifica una lista de valores CATALINA_BASE separados por dos puntos.
    • catalina-home especifica el valor de CATALINA_HOME.
    • java-version es un parámetro opcional que especifica la versión de Java que usará el contenedor.

CRD

  1. Para definir una migración, crea un archivo de migración llamado my-migration.yaml.

    En este archivo, configura los siguientes campos:

    • sourceProvider: Especifica el nombre de un SourceProvider creado con anterioridad.
    • sourceId: especifica el nombre de la instancia de la VM de Compute Engine.
    • parameters: Establece parámetros específicos para las cargas de trabajo de Tomcat.

    A continuación, se muestra un ejemplo de un archivo de migración con estos valores de campo establecidos:

    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 migras una VM de Compute Engine, detén la VM. La VM debe detenerse para crear una migración. Una vez finalizada la migración, puedes reiniciar la VM.

  3. Aplica el siguiente archivo:

    kubectl apply -f my-migration.yaml

Cargas de trabajo tradicionales de WebSphere

Especifica WAS_HOME

La variable de entorno WAS_HOME especifica dónde se instala el WAS tradicional, como /opt/IBM/WebSphere/AppServer/. Migrate to Containers usan este valor cuando creas una migración para ejecutar secuencias de comandos que recuperan información sobre una app y determinar la ruta de un perfil de la app. Si Migrate to Containers no logra ubicar la carpeta de instalación, puedes establecer el valor de WAS_HOME.

migctl

  1. Detenga la VM. La VM debe detenerse para crear una migración. Una vez finalizada la migración, puedes reiniciar la VM.

  2. Crea la migración:

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

    En el ejemplo anterior, --vm-id especifica el nombre de la instancia como se muestra en la consola de servicio.

CRD

  1. Para definir una migración, crea un archivo de migración llamado my-migration.yaml.

    En este archivo, configura los siguientes campos:

    • sourceProvider: Especifica el nombre de un SourceProvider creado con anterioridad.
    • sourceId: Especifica el nombre de la instancia de VM de Compute Engine.
    • parameters: Establece parámetros específicos para las cargas de trabajo de WebSphere.

    A continuación, se muestra un ejemplo de un archivo de migración con estos valores de campo establecidos:

    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 migras una VM de Compute Engine, detén la VM. La VM debe detenerse para crear una migración. Una vez finalizada la migración, puedes reiniciar la VM.

  3. Aplica el siguiente archivo:

    kubectl apply -f my-migration.yaml

Cargas de trabajo de JBoss

Crea una migración mediante la herramienta migctl o la consola de Google Cloud.

migctl

  1. Detenga la VM. La VM debe detenerse para crear una migración. Una vez finalizada la migración, puedes reiniciar la VM.

  2. Crea la migración:

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

    En el ejemplo anterior, --vm-id especifica el nombre de la instancia de VM como se muestra en la consola de tipo de origen.

Consola

  1. Si la fuente de migración es una VM de Compute Engine, detén la VM de Compute Engine. La VM debe detenerse para crear una migración. Una vez finalizada la migración, puedes reiniciar la VM.

  2. Abre la página Migrate to Containers en la consola de Google Cloud.

    Ir a la página Migrate to Containers

  3. Haz clic en la pestaña Migraciones para ver una tabla con las migraciones disponibles.

  4. Haz clic en Crear migración.

  5. Ingresa el Nombre de la migración.

  6. Selecciona la fuente de migración que creaste en Agrega una fuente de migración.

  7. Configura el Tipo de carga de trabajo como Contenedor de JBoss.

  8. Ingresa el Nombre de la instancia de origen. Consulta Antes de comenzar si deseas obtener más información para determinar el nombre de la instancia.

  9. Establece el parámetro JBOSS_HOME usando la ruta de instalación de JBoss.

  10. Haz clic en Crear migración.

    Cuando se completa la creación de la migración, la columna Estado muestra Migration plan generated.

CRD

  1. Para definir una migración, crea un archivo de migración llamado my-migration.yaml.

    En este archivo, el campo name en sourceProviderRef especifica el nombre de un SourceProvider creado con anterioridad y el campo sourceId especifica el nombre de la instancia de Compute Engine. En el campo type, ingresa jboss-container. Puedes agregar una lista de parámetros de descubrimiento en discoveryParameters. Cada parámetro discoveryParameters tiene 2 propiedades: name y value. Cuando creas una migración de JBoss, el parámetro discoveryParameters llamado jboss-home, que especifica la ruta de acceso principal de JBoss, como su value es obligatorio.

    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 migras una VM de Compute Engine, detén la VM. La VM debe detenerse para crear una migración. Una vez finalizada la migración, puedes reiniciar la VM.

  3. Aplica el siguiente archivo:

    kubectl apply -f my-migration.yaml

Cargas de trabajo de Apache

Crea una migración mediante la herramienta migctl o la consola de Google Cloud.

migctl

  1. Detenga la VM. La VM debe detenerse para crear una migración. Una vez finalizada la migración, puedes reiniciar la VM.

  2. Crea la migración:

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

    En el ejemplo anterior, --vm-id especifica el nombre de la instancia de VM como se muestra en la consola de tipo de origen.

Consola

  1. Si la fuente de migración es una VM de Compute Engine, detén la VM de Compute Engine. La VM debe detenerse para crear una migración. Una vez finalizada la migración, puedes reiniciar la VM.

  2. Abre la página Migrate to Containers en la consola de Google Cloud.

    Ir a la página Migrate to Containers

  3. Haz clic en la pestaña Migraciones para ver una tabla con las migraciones disponibles.

  4. Haz clic en Crear migración.

  5. Ingresa el Nombre de la migración.

  6. Selecciona la fuente de migración que creaste en Agrega una fuente de migración.

  7. Configura el Tipo de carga de trabajo como Contenedor de Apache.

  8. Ingresa el ID de VM de origen. Consulta Antes de comenzar para obtener más información sobre cómo se determina el ID de la VM.

  9. Haz clic en Crear migración.

    Cuando se completa la creación de la migración, la columna Estado muestra Migration plan generated.

CRD

  1. Para definir una migración, crea un archivo de migración llamado my-migration.yaml.

    En este archivo, el campo name en sourceProviderRef especifica el nombre de un SourceProvider creado con anterioridad y el campo sourceId especifica el nombre de la instancia de Compute Engine. En el campo type, ingresa 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 migras una VM de Compute Engine, detén la VM. La VM debe detenerse para crear una migración. Una vez finalizada la migración, puedes reiniciar la VM.

  3. Aplica el siguiente archivo:

    kubectl apply -f my-migration.yaml

Cargas de trabajo de WordPress

Crea una migración mediante la herramienta migctl o la consola de Google Cloud.

migctl

  1. Detenga la VM. La VM debe detenerse para crear una migración. Una vez finalizada la migración, puedes reiniciar la VM.

  2. Crea la migración:

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

    En el ejemplo anterior, --vm-id especifica el nombre de la instancia de VM como se muestra en la consola de tipo de origen.

Consola

  1. Si la fuente de migración es una VM de Compute Engine, detén la VM de Compute Engine. La VM debe detenerse para crear una migración. Una vez finalizada la migración, puedes reiniciar la VM.

  2. Abre la página Migrate to Containers en la consola de Google Cloud.

    Ir a la página Migrate to Containers

  3. Haz clic en la pestaña Migraciones para ver una tabla con las migraciones disponibles.

  4. Haz clic en Crear migración.

  5. Ingresa el Nombre de la migración.

  6. Selecciona la fuente de migración que creaste en Agrega una fuente de migración.

  7. Configura el Tipo de carga de trabajo como Contenedor de WordPress.

  8. Ingresa el ID de VM de origen. Consulta Antes de comenzar para obtener más información sobre cómo se determina el ID de la VM.

  9. Haz clic en Crear migración.

    Cuando se completa la creación de la migración, la columna Estado muestra Migration plan generated.

CRD

  1. Para definir una migración, crea un archivo de migración llamado my-migration.yaml.

    En este archivo, el campo name en sourceProviderRef especifica el nombre de un SourceProvider creado con anterioridad y el campo sourceId especifica el nombre de la instancia de Compute Engine. En el campo type, ingresa 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 migras una VM de Compute Engine, detén la VM. La VM debe detenerse para crear una migración. Una vez finalizada la migración, puedes reiniciar la VM.

  3. Aplica el siguiente archivo:

    kubectl apply -f my-migration.yaml

Supervisa la creación de migraciones

Usa la herramienta de migctl o la consola de Google Cloud para supervisar el progreso de la creación de la migración.

migctl

  1. Espera a que finalice la fase de creación de la migración:

    migctl migration status my-migration
    
    NAME           CURRENT-OPERATION      PROGRESS   STEP                   STATUS   AGE
    my-migration   GenerateMigrationPlan  [1/3]      CreateSourceSnapshots  Running  13s 
  2. Si quieres migrar una VM de Compute Engine, reiníciala. No se requiere una VM detenida después de este paso.

Consola

Cuando el estado de la migración muestra que se creó la migración, puedes continuar con el siguiente paso:

  1. Abre la página Migrate to Containers en la consola de Google Cloud.

    Ir a la página Migrate to Containers

  2. Haz clic en la pestaña Migraciones para ver una tabla con las migraciones disponibles.

  3. Para ver el estado de una migración, sigue estos pasos:

    • Visualiza la columna Estado de la fila de la migración.

    • Haz clic en el nombre de la migración. Se abrirá la página Detalles de la migración. Haz clic en la pestaña Supervisión para ver el estado detallado, o en la pestaña Eventos para ver los eventos de migración.

  4. Cuando se completa la migración, el Estado muestra Migration plan generated.

  5. Si quieres migrar una VM de Compute Engine, reiníciala. No se requiere una VM detenida después de este paso.

CRD

Usa kubectl para obtener la información y el estado de MigrationStatus mediante la especificación de una JSONPath al campo necesario.

  1. Espera a que finalice la fase de creación de la migración:

    Usa dos comandos kubectl wait, uno para esperar la condición “Listo” y el otro para la condición “Con errores”. La fase de creación del plan de migración se ejecuta hasta que se cumpla la primera condición.

    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.
    

    Cuando se complete el comando de espera, la operación habrá finalizado y podrás continuar con el siguiente paso.

  2. Obtén el estado del plan de migración:

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

    Muestra True cuando el plan de migración está listo o False cuando falló.

  3. Cuando falle la fase de creación de la migración, usa el siguiente comando para obtener el mensaje de error:

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

  4. Si quieres migrar una VM de Compute Engine, reiníciala. No se requiere una VM detenida después de este paso.

¿Qué sigue?