Guía de inicio rápido

En esta guía de inicio rápido, crearás una máquina virtual (VM) simple de Compute Engine y, luego, usarás Migrate for Anthos para migrar la VM a un clúster procesamiento de Google Kubernetes Engine (GKE). en la nube.

Puedes realizar los pasos de la guía de inicio rápido con la herramienta migctl o Google Cloud Console. migctl es una herramienta de línea de comandos para configurar y administrar un entorno de migración de Migrate for Anthos en Google Cloud. migctl está disponible en Cloud Shell.

Antes de comenzar

Habilita la compatibilidad con Compute Engine

  1. Accede a tu cuenta de Google Cloud. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
  2. En la página del selector de proyectos de Google Cloud Console, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyecto

  3. Asegúrate de que la facturación esté habilitada para tu proyecto de Cloud. Descubre cómo confirmar que tienes habilitada la facturación en un proyecto.

  4. Habilita la API de Compute Engine.

    Habilitación de la API

Habilita y configura GKE

Antes de comenzar, asegúrate de haber realizado las siguientes tareas:

Establece la configuración de gcloud predeterminada mediante uno de los siguientes métodos:

  • Usa gcloud init si deseas ver una explicación sobre cómo configurar parámetros predeterminados.
  • Usa gcloud config para establecer el ID, la zona y la región del proyecto de manera individual.

Usa gcloud init

Si recibes el error One of [--zone, --region] must be supplied: Please specify location, completa esta sección.

  1. Ejecuta gcloud init y sigue las instrucciones:

    gcloud init

    Si usas SSH en un servidor remoto, usa la marca --console-only para evitar que el comando abra un navegador:

    gcloud init --console-only
  2. Sigue las instrucciones a fin de autorizar a gcloud para que use tu cuenta de Google Cloud.
  3. Crea una configuración nueva o selecciona una existente.
  4. Elige un proyecto de Google Cloud.
  5. Elige una zona predeterminada de Compute Engine para clústeres zonales o una región para clústeres regionales o de Autopilot.

Usa gcloud config

  • Establece tu ID del proyecto predeterminado:
    gcloud config set project PROJECT_ID
  • Si trabajas con clústeres zonales, establece tu zona de procesamiento predeterminada:
    gcloud config set compute/zone COMPUTE_ZONE
  • Si trabajas con clústeres de Autopilot o regionales, configura tu región de procesamiento predeterminada:
    gcloud config set compute/region COMPUTE_REGION
  • Actualiza gcloud a la versión más reciente:
    gcloud components update

Crea una VM con un servidor web

En los pasos siguientes, crearás una VM de Compute Engine simple que entregará una página web de “Hello World!”. Tener la página te permite realizar una prueba después de la migración.

  1. Ejecuta el siguiente comando para crear la instancia de VM que migrarás.

    Especifica una zona que sea la misma en la que crearás un clúster de GKE más adelante para este tema.

    gcloud compute instances create quickstart-instance \
      --project=project-id  --zone=zone --machine-type=n1-standard-1 \
      --subnet=default --scopes="cloud-platform" \
      --tags=http-server,https-server --image=ubuntu-minimal-1604-xenial-v20210119a \
      --image-project=ubuntu-os-cloud --boot-disk-size=10GB --boot-disk-type=pd-standard \
      --boot-disk-device-name=quickstart-instance
    
  2. Ejecuta el siguiente comando para crear una regla de firewall que permita solicitudes a la instancia a través de HTTP.

    gcloud compute --project=project-id firewall-rules create default-allow-http \
      --direction=INGRESS --priority=1000 --network=default --action=ALLOW \
      --rules=tcp:80 --source-ranges=0.0.0.0/0 --target-tags=http-server
    
  3. En Google Cloud Console, ve a la página Instancias de VM.

    Ir a la página Instancias de VM

  4. En la lista de instancias de máquina virtual, haz clic en SSH en la fila de la instancia que acabas de crear.

    Para obtener más información sobre cómo conectarte a través de SSH, consulta Conéctate a instancias.

  5. En la ventana de comandos de quickstart-instance, usa el administrador de paquetes para instalar el paquete apache2.

    sudo apt-get update && sudo apt-get install apache2 -y
    

    Después de instalar Apache, el sistema operativo inicia el servidor Apache de forma automática.

  6. En la misma ventana de comando, reemplaza la página web predeterminada de Apache Web Server por el siguiente comando:

    echo '<!doctype html><html><body><h1>Hello World!</h1></body></html>' | sudo tee /var/www/html/index.html
    
  7. En la página Instancias de VM, ubica la fila de la instancia que creaste y copia la dirección IP externa.

  8. Pega la dirección IP de la instancia en la barra de direcciones del navegador. Agrega el prefijo http://.

    Debería ver la página "Hello World!".

  9. En la página Instancias de VM, selecciona la casilla de verificación que se encuentra en el extremo izquierdo de la fila de la instancia que creaste.

  10. En la parte superior de la página, haz clic en el botón Detener para detener la VM.

Crea un clúster de procesamiento e instala Migrate for Anthos

En los siguientes pasos, crearás un clúster de GKE en la nube que usarás como clúster de procesamiento. Allí, instalarás Migrate for Anthos y ejecutarás la migración.

  1. En Cloud Shell, usa el siguiente comando para crear un nuevo clúster de Kubernetes y usarlo como un clúster de procesamiento.

    Cuando especifiques el valor machine-type, asegúrate de especificar un tipo de máquina que tenga al menos 15 GB de memoria.

    gcloud container clusters create migration-processing \
      --project=project-id --zone=zone --machine-type n1-standard-4 \
      --image-type ubuntu --num-nodes 1 --enable-stackdriver-kubernetes \
      --subnetwork "projects/project-id/regions/region/subnetworks/default"
    
  2. Instala Migrate for Anthos.

    migctl

    Para permitir que Migrate for Anthos acceda a Container Registry y Cloud Storage, debes crear una cuenta de servicio con la función storage.admin:

    1. En Cloud Shell, crea la cuenta de servicio m4a-install:

      gcloud iam service-accounts create m4a-install \
        --project=PROJECT_ID
    2. Otorga la función storage.admin a la cuenta de servicio:

      gcloud projects add-iam-policy-binding PROJECT_ID  \
        --member="serviceAccount:m4a-install@PROJECT_ID.iam.gserviceaccount.com" \
        --role="roles/storage.admin"
    3. Descarga el archivo de claves para la cuenta de servicio:

      gcloud iam service-accounts keys create m4a-install.json \
        --iam-account=m4a-install@PROJECT_ID.iam.gserviceaccount.com \
        --project=PROJECT_ID 
    4. Conéctate al clúster.

      gcloud container clusters get-credentials migration-processing \
        --zone zone --project project-id
      
    5. En Cloud Shell, configura los componentes de Migrate for Anthos en tu clúster de procesamiento mediante la herramienta de línea de comandos de migctl incluidas en Migrate for Anthos:

      migctl setup install --json-key=m4a-install.json
      
    6. Valide la instalación de Migrate for Anthos.

      Usa el comando migctl doctor para confirmar una implementación exitosa.

      migctl doctor
      

      Es posible que el comando demore más de un minuto en mostrar el resultado correcto que aparece a continuación.

      [✓] Deployment
      

    Console

    Google Cloud Console puede ayudarte con el proceso de instalación, ya que genera los comandos de instalación necesarios y los ejecuta en Cloud Shell.

    1. Abre la página Migrate for Anthos en Cloud Console.

      Ir a la página Migrate for Anthos

    2. Haz clic en Agregar clúster de procesamiento.

    3. Selecciona el clúster que creaste con anterioridad, migration-processing, de la lista desplegable.

    4. Ejecuta cada uno de los comandos de Cloud Shell para poder hacer lo siguiente:

      • Crear una cuenta de servicio que permita a Migrate for Anthos acceder a Container Registry y Cloud Storage
      • Instalar los componentes de Migrate for Anthos
      .
    5. Usa el último comando de Cloud Shell para supervisar el estado de la instalación.

      Antes de que se complete la instalación, es posible que veas un mensaje como el siguiente. Si es así, espera unos minutos para que finalice la instalación antes de volver a ejecutar migctl doctor.

      migctl doctor
      [!] Deployment
       validation job is in-progress
      

      En el siguiente resultado de ejemplo, la marca de verificación indica que Migrate for Anthos se implementó correctamente.

      migctl doctor
      [✓] Deployment
      
    6. Selecciona Listo cuando se complete la instalación.

Migre la VM

En los siguientes pasos, crearás un plan de migración con detalles de la migración y, luego, lo usarás para migrar la VM.

  1. Especifica la fuente de migración como una VM de Compute Engine. En este paso, se agrega la especificación de origen al plan de migración.

    migctl

    Para utilizar Compute Engine como una fuente de migración, primero debes crear una cuenta de servicio con las funciones de compute.viewer y compute.storageAdmin:

    1. En Cloud Shell, crea la cuenta de servicio m4a-ce-src:

      gcloud iam service-accounts create m4a-ce-src \
        --project=PROJECT_ID
    2. Otorga la función compute.viewer a la cuenta de servicio:

      gcloud projects add-iam-policy-binding PROJECT_ID  \
        --member="serviceAccount:m4a-ce-src@PROJECT_ID.iam.gserviceaccount.com" \
        --role="roles/compute.viewer"
    3. Otorga la función compute.storageAdmin a la cuenta de servicio:

      gcloud projects add-iam-policy-binding PROJECT_ID  \
        --member="serviceAccount:m4a-ce-src@PROJECT_ID.iam.gserviceaccount.com" \
        --role="roles/compute.storageAdmin"
    4. Descarga el archivo de claves para la cuenta de servicio:

      gcloud iam service-accounts keys create m4a-ce-src.json \
        --iam-account=m4a-ce-src@PROJECT_ID.iam.gserviceaccount.com \
        --project=PROJECT_ID 
    5. Crea la fuente de migración:

      migctl source create ce quickstart-source --project project-id --json-key=m4a-ce-src.json
      

      En la que m4a-ce-src.json especifica la cuenta de servicio que creaste antes.

    Console

    1. Abre la página Migrate for Anthos en Cloud Console.

      Ir a la página Migrate for Anthos

    2. Haz clic en Agregar fuente.

    3. Selecciona un clúster en el que ya hayas instalado los componentes de Migrate for Anthos de la lista desplegable.

    4. Haz clic en Siguiente.

    5. Especifica el nombre de la migración como quickstart-source.

    6. Configura el Tipo de origen como Compute Engine.

    7. Haz clic en Siguiente.

    8. Selecciona el proyecto que contenga la VM que deseas migrar.

    9. Crea una cuenta de servicio que te permita usar Compute Engine como fuente de migración y selecciona Crear una cuenta de servicio nueva. Se te solicitará que ingreses el nombre de la cuenta de servicio nueva.

    10. Haz clic en Siguiente.

    11. Selecciona Agregar fuente.

  2. Crea una migración.

    migctl

    Con este comando, se crea un plan de migración que define qué migrar.

    migctl migration create my-migration --source quickstart-source \
      --vm-id quickstart-instance --intent Image
    

    Cuando el estado de migración muestre que se creó la migración, podrás continuar con el siguiente paso:

    migctl migration status my-migration
    
    NAME           CURRENT-OPERATION      PROGRESS STEP                   STATUS   AGE
    my-migration   GenerateMigrationPlan  [1/3]    CreateSourceSnapshots  Running  13s

    Console

    1. Abre la página Migrate for Anthos en Cloud Console.

      Ir a la página Migrate for Anthos

    2. Haz clic en Crear migración.

    3. Configura el Nombre de la migración como migration.

    4. Selecciona la fuente de migración que creaste en el paso anterior: quickstart-source.

    5. Configura VM name or ID de origen como quickstart-instance.

    6. Establece el Intent de migración como Image.

    7. Haz clic en Crear migración.

      Cuando la migración se complete, la columna Estado mostrará Migration plan generated.

  3. Revisa el plan de migración.

    En esta guía de inicio rápido, solo revisas el plan de migración. Sin embargo, también puedes editarlo. Consulta Personaliza un plan de migración para obtener más información.

    migctl

    Debes descargar el plan de migración para revisarlo:

    1. Descarga el plan de migración:

      migctl migration get my-migration
      
    2. Abre el plan de migración que descargaste, my-migration.yaml, en un editor de texto para revisarlo.

    3. Si realizaste cambios, sube el plan de migración editado (no es necesario que completes la guía de inicio rápido):

      migctl migration update my-migration --file my-migration.yaml
      

    Console

    Revisa el plan de migración en Google Cloud Console con el editor de YAML:

    1. En la fila de la migración deseada, selecciona el Nombre de la migración para abrir la pestaña Detalles.

    2. Selecciona la pestaña YAML.

    3. Revisa el plan de migración.

    4. Haz clic en el ícono “X” en la esquina superior derecha para cerrar el plan sin editarlo.

  4. Migrar la VM mediante el plan de migración

    En este paso, se migra la VM y se generan artefactos que puedes usar para implementar la carga de trabajo.

    migctl

    migctl migration generate-artifacts my-migration
    

    Console

    1. Abre la página Migrate for Anthos en Cloud Console.

      Ir a la página Migrate for Anthos

    2. En la fila de la migración deseada, selecciona Generate artifacts en el menú desplegable Próximos pasos.

  5. Después de que comience la migración, verifica su estado hasta que finalice.

    La migración puede tardar varios minutos. Durante este tiempo, la comprobación del estado informa el estado actual de la migración.

    migctl

    migctl migration status my-migration
    

    Cuando se complete la migración, deberías ver un mensaje como el que se muestra a continuación:

    migctl migration status my-migration
    
    NAME            CURRENT-OPERATION       PROGRESS        STEP            STATUS    AGE
    my-migration    GenerateArtifacts       [1/1]           ExtractImage    Completed 14m23s

    Console

    1. Abre la página Migrate for Anthos en Cloud Console.

      Ir a la página Migrate for Anthos

    2. 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 los detalles del estado, o en la pestaña Eventos para ver los eventos de migración.

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

Implemente la carga de trabajo migrada

En los pasos siguientes, obtendrás los artefactos de implementación que generaste durante la migración y, luego, los usarás para implementar tu carga de trabajo migrada en el clúster. Como último paso, confirmarás que la página web "Hello World!" esté disponible desde la aplicación migrada.

  1. Una vez que se complete la migración, descarga los artefactos YAML generados.

    migctl

    migctl migration get-artifacts my-migration
    

    Console

    1. Abre la página Migrate for Anthos en Cloud Console.

      Ir a la página Migrate for Anthos

    2. Haz clic en el Nombre de la migración en la fila de la migración deseada. Se abrirá la pestaña Detalles de la migración.

    3. Selecciona la pestaña Artefactos.

    4. Selecciona cada archivo para descargarlo por separado.

    Entre los archivos de artefactos descargados que se generaron durante la migración, se incluyen los siguientes:

    • deployment_spec.yaml: Es el archivo YAML que configura tu carga de trabajo.
    • Dockerfile: El Dockerfile que se usa para compilar la imagen de la VM migrada.
    • migration.yaml: Es una copia del plan de migración.
    • blocklist.yaml: la lista de servicios del contenedor que quieres inhabilitar según tu configuración en el plan de migración. Consulta Personaliza la lista de servicios.
  2. Abre el archivo deployment_spec.yaml y ubica el objeto Service cuyo nombre es quickstart-instance.

  3. Debajo de la definición Service, pega otro Service que exponga el puerto 80 para acceder al servidor web a través de HTTP y, luego, guarda el archivo.

    Pega el código destacado para que tengas lo que se muestra a continuación en las especificaciones de implementación.

    apiVersion: v1
    kind: Service
    metadata:
      creationTimestamp: null
      name: quickstart-instance
    spec:
      clusterIP: None
      selector:
        app: quickstart-instance
      type: ClusterIP
    status:
      loadBalancer: {}
    
    ---
    
    apiVersion: v1
    kind: Service
    metadata:
      name: hello-service
    spec:
      selector:
        app: quickstart-instance
      ports:
        - protocol: TCP
          port: 80
          targetPort: 80
      type: LoadBalancer
    
    

  4. Aplica la especificación de implementación YAML para implementar la carga de trabajo.

    kubectl apply -f deployment_spec.yaml
    

    Es posible que la implementación tarde unos minutos en completarse.

  5. Busca una dirección IP externa.

    kubectl get service hello-service
    

    Cuando el servidor web esté listo, verás una dirección IP externa para el hello-service que agregaste.

    kubectl get service hello-service
    NAME            TYPE           CLUSTER-IP      EXTERNAL-IP    PORT(S)        AGE
    hello-service   LoadBalancer   10.23.241.124   ##.##.###.##   80:32611/TCP   5m4s
    
  6. Para probar la migración, abre un navegador y visita la página web en la dirección IP externa (asegúrate de usar HTTP en lugar de HTTPS).

    http://##.##.###.##
    

Puedes ejecutar comandos bash en el contenedor con la carga de trabajo migrada. Para obtener más información, consulta el tema Solución de problemas.

Limpia

A fin de evitar cargos innecesarios de Google Cloud, usa Google Cloud Console para borrar tu proyecto si no lo necesitas.

Próximos pasos