arrow_back

Migrate to Containers: Qwik Start

Acceder Unirse
Pon a prueba tus conocimientos y compártelos con nuestra comunidad
done
Obtén acceso a más de 700 labs prácticos, insignias de habilidad y cursos

Migrate to Containers: Qwik Start

Lab 1 hora universal_currency_alt 1 crédito show_chart Introductorio
info Es posible que este lab incorpore herramientas de IA para facilitar tu aprendizaje.
Pon a prueba tus conocimientos y compártelos con nuestra comunidad
done
Obtén acceso a más de 700 labs prácticos, insignias de habilidad y cursos

GSP682

Logotipo de los labs de autoaprendizaje de Google Cloud

Descripción general

Las instancias de VM pueden existir a nivel local (administradas por productos como VMware vSphere) y en nubes públicas (como AWS o Azure), además de las instancias de Google Cloud Compute Engine.

Anthos es una plataforma de aplicaciones de código abierto que te permite modernizar tus aplicaciones existentes en un entorno híbrido o de múltiples nubes. Puedes compilar VM nuevas y ejecutarlas en cualquier lugar de forma segura. Anthos usa las tecnologías de código abierto introducidas por Google, como Kubernetes, Istio y Knative, y brinda coherencia entre los entornos locales y de nube.

Cuando las cargas de trabajo se actualizan a contenedores, los departamentos de TI ya no deben encargarse del mantenimiento ni de los parches de seguridad a nivel del SO para las VM, y pueden automatizar las actualizaciones de políticas y seguridad a gran escala. La supervisión en entornos locales y en la nube se realiza a través de una única interfaz en la consola de Cloud.

Migrate to Containers proporciona una solución casi en tiempo real para tomar una VM existente y ponerla a disposición como un Pod alojado en Kubernetes con todos los valores asociados con la ejecución de tus aplicaciones en un clúster de Kubernetes.

En este lab, crearás una máquina virtual (VM) de Compute Engine simple y, luego, utilizarás Migrate to Containers para migrarla a un clúster de procesamiento de GKE en la nube. Puedes realizar los pasos con la herramienta migctl o con la consola de Cloud. migctl es una herramienta de línea de comandos que se utiliza para configurar y administrar un entorno de migración de Migrate to Containers en Google Cloud. migctl está disponible en Cloud Shell.

Migrate to Containers te permite crear contenedores más rápido que otras posibilidades de esta manera:

Diagrama de la arquitectura de migración de contenedores.

Objetivos

Aprenderás a realizar las siguientes tareas:

  • Crear una instancia de Compute Engine que aloje un servidor web
  • Crear un clúster de GKE para alojar la instancia migrada de Compute Engine
  • Migrar la instancia de Compute Engine con Migrate to Containers
  • Probar el servidor web existente en GKE

Configuración y requisitos

Antes de hacer clic en el botón Comenzar lab

Lee estas instrucciones. Los labs son cronometrados y no se pueden pausar. El cronómetro, que comienza a funcionar cuando haces clic en Comenzar lab, indica por cuánto tiempo tendrás a tu disposición los recursos de Google Cloud.

Este lab práctico te permitirá realizar las actividades correspondientes en un entorno de nube real, no en uno de simulación o demostración. Para ello, se te proporcionan credenciales temporales nuevas que utilizarás para acceder a Google Cloud durante todo el lab.

Para completar este lab, necesitarás lo siguiente:

  • Acceso a un navegador de Internet estándar (se recomienda el navegador Chrome)
Nota: Usa una ventana de navegador privada o de Incógnito para ejecutar este lab. Así evitarás cualquier conflicto entre tu cuenta personal y la cuenta de estudiante, lo que podría generar cargos adicionales en tu cuenta personal.
  • Tiempo para completar el lab: Recuerda que, una vez que comienzas un lab, no puedes pausarlo.
Nota: Si ya tienes un proyecto o una cuenta personal de Google Cloud, no los uses en este lab para evitar cargos adicionales en tu cuenta.

Cómo iniciar tu lab y acceder a la consola de Google Cloud

  1. Haga clic en el botón Comenzar lab. Si debe pagar por el lab, se abrirá una ventana emergente para que seleccione su forma de pago. A la izquierda, se encuentra el panel Detalles del lab, que tiene estos elementos:

    • El botón Abrir la consola de Google Cloud
    • El tiempo restante
    • Las credenciales temporales que debe usar para el lab
    • Otra información para completar el lab, si es necesaria
  2. Haz clic en Abrir la consola de Google Cloud (o haz clic con el botón derecho y selecciona Abrir el vínculo en una ventana de incógnito si ejecutas el navegador Chrome).

    El lab inicia recursos y abre otra pestaña en la que se muestra la página de acceso.

    Sugerencia: Ordene las pestañas en ventanas separadas, una junto a la otra.

    Nota: Si ves el diálogo Elegir una cuenta, haz clic en Usar otra cuenta.
  3. De ser necesario, copia el nombre de usuario a continuación y pégalo en el diálogo Acceder.

    {{{user_0.username | "Username"}}}

    También puedes encontrar el nombre de usuario en el panel Detalles del lab.

  4. Haz clic en Siguiente.

  5. Copia la contraseña que aparece a continuación y pégala en el diálogo Te damos la bienvenida.

    {{{user_0.password | "Password"}}}

    También puedes encontrar la contraseña en el panel Detalles del lab.

  6. Haz clic en Siguiente.

    Importante: Debes usar las credenciales que te proporciona el lab. No uses las credenciales de tu cuenta de Google Cloud. Nota: Usar tu propia Cuenta de Google podría generar cargos adicionales.
  7. Haga clic para avanzar por las páginas siguientes:

    • Acepta los Términos y Condiciones.
    • No agregues opciones de recuperación o autenticación de dos factores (esta es una cuenta temporal).
    • No te registres para obtener pruebas gratuitas.

Después de un momento, se abrirá la consola de Google Cloud en esta pestaña.

Nota: Para ver un menú con una lista de productos y servicios de Google Cloud, haz clic en el menú de navegación que se encuentra en la parte superior izquierda. Ícono del menú de navegación

Activa Cloud Shell

Cloud Shell es una máquina virtual que cuenta con herramientas para desarrolladores. Ofrece un directorio principal persistente de 5 GB y se ejecuta en Google Cloud. Cloud Shell proporciona acceso de línea de comandos a tus recursos de Google Cloud.

  1. Haz clic en Activar Cloud Shell Ícono de Activar Cloud Shell en la parte superior de la consola de Google Cloud.

Cuando te conectes, habrás completado la autenticación, y el proyecto estará configurado con tu PROJECT_ID. El resultado contiene una línea que declara el PROJECT_ID para esta sesión:

Your Cloud Platform project in this session is set to YOUR_PROJECT_ID

gcloud es la herramienta de línea de comandos de Google Cloud. Viene preinstalada en Cloud Shell y es compatible con la función de autocompletado con tabulador.

  1. Puedes solicitar el nombre de la cuenta activa con este comando (opcional):
gcloud auth list
  1. Haz clic en Autorizar.

  2. Ahora, el resultado debería verse de la siguiente manera:

Resultado:

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. Puedes solicitar el ID del proyecto con este comando (opcional):
gcloud config list project

Resultado:

[core] project = <project_ID>

Resultado de ejemplo:

[core] project = qwiklabs-gcp-44776a13dea667a6 Nota: Para obtener toda la documentación de gcloud, consulta la guía con la descripción general de gcloud CLI en Google Cloud.
  1. Establece una variable de entorno para tu ID del proyecto:
export PROJECT_ID=$DEVSHELL_PROJECT_ID

Tarea 1. Crea una instancia de Compute Engine de origen

  1. Ejecuta el siguiente comando para crear y configurar una instancia de Compute Engine que actuará como el origen de la VM que se migrará:
gcloud compute instances create source-vm --zone={{{project_0.startup_script.lab_zone | zone}}} --machine-type=e2-standard-2 --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=source-vm \ --metadata startup-script={{{project_0.startup_script.metadata_script|METADATA_SCRIPT}}}

Instalaste el servidor web Apache y creaste una página web básica mediante la secuencia de comandos de inicio.

Resultado de muestra:

Created [https://www.googleapis.com/compute/beta/projects/qwiklabs-gcp-02-ace18e67a4ba/zones/{{{project_0.startup_script.lab_zone | zone}}}/instances/source-vm]. NAME: source-vm ZONE: {{{project_0.startup_script.lab_zone | zone}}} MACHINE_TYPE: e2-standard-2 PREEMPTIBLE: INTERNAL_IP: 10.128.0.2 EXTERNAL_IP: 34.70.249.10 STATUS: RUNNING
  1. Crea una regla de firewall para permitir HTTP:
gcloud compute 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

Resultado de muestra:

Creating firewall...working..Created [https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-04-1126b7a391de/global/firewalls/default-allow-http]. Creating firewall...done. NAME: default-allow-http NETWORK: default DIRECTION: INGRESS PRIORITY: 1000 ALLOW: tcp:80 DENY: DISABLED: False

Haz clic en Revisar mi progreso para verificar el objetivo. Crear una instancia de Compute Engine de origen

  1. En Cloud Console, navega a Compute Engine > Instancias de VM, ubica la fila de la instancia que creaste y copia la dirección IP externa.

  2. Pega la dirección IP de la instancia en la barra de direcciones del navegador. Agrégale el prefijo http://.

Deberías ver la página “Hello World!”.

Para migrar la VM, primero detén su ejecución.

  1. En la consola de Cloud, navega a Compute Engine > Instancias de VM, marca la casilla de verificación a la izquierda de source-vm y, luego, haz clic en el botón DETENER en la parte superior.

La ruta de navegación al botón Detener

Nota: Si no ves el botón Detener, selecciona el botón Más acciones (tres puntos verticales) y elige “detener” en el menú desplegable.
  1. Haz clic en Detener en la ventana emergente para confirmar el apagado. Puedes continuar con la siguiente sección mientras se apaga la VM.
Nota: La VM debe detenerse para que puedas migrarla. Puedes volver a iniciarla después de crear la migración usando la IU o el comando migctl migration create.

Tarea 2. Crea un clúster de procesamiento

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

  • En Cloud Shell, ejecuta el siguiente comando para crear un nuevo clúster de Kubernetes y utilizarlo como centro de procesamiento:
gcloud container clusters create migration-processing --project=$PROJECT_ID --zone={{{project_0.startup_script.lab_zone | zone}}} --machine-type e2-standard-4 --image-type ubuntu_containerd --num-nodes 3 --enable-stackdriver-kubernetes --subnetwork "projects/$PROJECT_ID/regions/{{{project_0.startup_script.lab_region | region}}}/subnetworks/default" Nota: Asegúrate de especificar aquí la misma zona que especificaste cuando creaste la VM.

Resultado de muestra:

Creating cluster migration-processing in {{{project_0.startup_script.lab_zone | zone}}} ...done. Created [https://container.googleapis.com/v1/projects/qwiklabs-gcp-04-1126b7a391de/zones/{{{project_0.startup_script.lab_zone | zone}}}/clusters/migration-processing]. To inspect the contents of your cluster, go to: https://console.cloud.google.com/kubernetes/workload_/gcloud/{{{project_0.startup_script.lab_zone | zone}}}/migration-processing?project=qwiklabs-gcp-04-1126b7a391de kubeconfig entry generated for migration-processing. NAME: migration-processing LOCATION: {{{project_0.startup_script.lab_zone | zone}}} MASTER_VERSION: 1.20.10-gke.301 MASTER_IP: 35.202.0.171 MACHINE_TYPE: e2-standard-4 NODE_VERSION: 1.20.10-gke.301 NUM_NODES: 3 STATUS: RUNNING

Haz clic en Revisar mi progreso para verificar el objetivo. Crear un clúster de procesamiento

Tarea 3. Instala Migrate to Containers

Para permitir que Migrate to Containers acceda a Container Registry y Cloud Storage, debes crear una cuenta de servicio con el rol storage.admin.

  1. En Cloud Shell, crea la cuenta de servicio m4a-install:
gcloud iam service-accounts create m4a-install \ --project=$PROJECT_ID
  1. Otorga el rol 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"
  1. 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
  1. Conéctate al clúster:
gcloud container clusters get-credentials migration-processing --zone {{{project_0.startup_script.lab_zone | zone}}}
  1. Configura los componentes de Migrate to Containers en tu clúster de procesamiento con la herramienta de línea de comandos migctl que incluye Migrate to Containers:
migctl setup install --json-key=m4a-install.json --gcp-project $PROJECT_ID --gcp-region {{{project_0.startup_script.lab_region | region}}}
  1. Valida la instalación de Migrate to Containers. Ejecuta el comando migctl doctor para verificar que la implementación se haya completado correctamente:
migctl doctor

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

Resultado de muestra:

[✓] Deployment [✓] Docker registry [✓] Artifacts repo [x] Source Status Nota: Source Status muestra [x] hasta que definas tu primera fuente de migración (más adelante).
  1. Vuelve a ejecutar el comando hasta que veas que la implementación se haya completado correctamente.

Tarea 4. Migra la VM

Ahora crearás un plan de migración con sus respectivos detalles y, luego, lo utilizarás para migrar la VM.

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
  1. Otorga el rol 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"
  1. Otorga el rol 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"
  1. 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
  1. Crea la fuente de migración:
migctl source create ce source-vm --project $PROJECT_ID --json-key=m4a-ce-src.json

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

Crea una migración

Para comenzar a migrar las VM, debes crear una migración. Esto da como resultado un objeto del plan de migración.

Una migración es el objeto central con el que realizas acciones de migración, supervisas sus actividades y su estado con la herramienta migctl o en la consola de Cloud. El objeto de migración se implementa como una definición de recurso personalizado (CRD) de Kubernetes.

A continuación, crearás una migración ejecutando la herramienta migctl.

  1. Crea el plan de migración que defina qué migrar:
migctl migration create my-migration --source source-vm --vm-id source-vm --type linux-system-container

Resultado de muestra:

Migration my-migration was created. Run `migctl migration status my-migration` to see its status.
  1. Ejecuta el siguiente comando para verificar el estado:
migctl migration status my-migration

Cuando el estado de la migración sea Completed, puedes avanzar al paso siguiente.

NAME CURRENT-OPERATION PROGRESS STEP STATUS AGE my-migration GenerateMigrationPlan [3/3] Discovery Completed 1m30s

Revisa el plan de migración

  1. En este lab, utilizarás el plan de migración predeterminado. Ahora descargarás el plan de migración solo para revisarlo:
migctl migration get my-migration
  1. Abre el archivo my-migration.yaml en tu editor de texto preferido o en el editor de código de Cloud Shell para revisarlo.

Si debes hacerle cambios, sube el plan nuevo con el comando migctl migration update my-migration.

Tarea 5. Migra la VM mediante el plan de migración

  1. Con este comando, se migrará la VM y se generarán artefactos que puedes utilizar para implementar la carga de trabajo:
migctl migration generate-artifacts my-migration Nota: Si el resultado es Error: Migration plan generation is not completed, vuelve a ejecutar el comando hasta que veas el siguiente resultado de muestra.

Resultado de muestra:

Generate Artifacts task started for Migration my-migration. Run `migctl migration status my-migration` to see its status.
  1. Tras comenzar la migración, ejecuta el siguiente comando para verificar su estado:
migctl migration status my-migration

La migración puede tardar varios minutos.

  1. Vuelve a ejecutar el comando hasta que su estado sea Completed.
NAME CURRENT-OPERATION PROGRESS STEP STATUS AGE my-migration GenerateArtifacts [3/3] GenerateDeploymentFiles Completed 7m35s
  1. Puedes agregar la marca -v para determinar la verbosidad:
migctl migration status my-migration -v

Tarea 6. Implementa la carga de trabajo migrada

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

  1. Tras completar la migración, obtén los artefactos YAML generados:
migctl migration get-artifacts my-migration

El comando descarga los archivos que se generaron durante la migración:

  • deployment_spec.yaml: el archivo YAML que configura la carga de trabajo

  • Dockerfile: el Dockerfile que se usa para compilar la imagen de la VM migrada

  • migration.yaml: una copia del plan de migración

  • blocklist.yaml: la lista de servicios de contenedor que deseas inhabilitar según tu configuración del plan de migración

  1. Si el editor de Cloud Shell no está abierto, haz clic en el botón Abrir editor.

  2. Abre el archivo deployment_spec.yaml y ubica el objeto Service con el nombre source-vm.

  3. Debajo de la siguiente definición Service, agrega otro Service al final que exponga el puerto 80 para acceder al servidor web a través de HTTP:

apiVersion: v1 kind: Service metadata: name: my-service spec: selector: app: source-vm ports: - protocol: TCP port: 80 targetPort: 80 type: LoadBalancer

Tu archivo debería verse así:

apiVersion: v1 kind: Service metadata: creationTimestamp: null name: source-vm spec: clusterIP: None selector: app: source-vm type: ClusterIP status: loadBalancer: {} --- apiVersion: v1 kind: Service metadata: name: my-service spec: selector: app: source-vm ports: - protocol: TCP port: 80 targetPort: 80 type: LoadBalancer
  1. Guarda el archivo.

  2. Aplica deployment_spec.yaml para implementar la carga de trabajo:

kubectl apply -f deployment_spec.yaml

Resultado de muestra:

deployment.apps/source-vm created service/source-vm created service/my-service created

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

  1. Ahora busca una dirección IP externa:
kubectl get service

Resultado de muestra:

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE hello-service LoadBalancer 10.23.253.140 35.184.157.83 80:31060/TCP 11m kubernetes ClusterIP 10.23.240.1 443/TCP 31m my-service LoadBalancer 10.23.244.80 104.197.196.94 80:31026/TCP 2m3s source-vm ClusterIP None 11m

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

Tarea 7. Prueba la migración

  • Para probar la migración, abre un navegador y visita la página web en la dirección IP externa de my-service (asegúrate de utilizar HTTP en lugar de HTTPS).

Por ejemplo:

http://<my-service-external-IP>

Haz clic en Revisar mi progreso para verificar el objetivo. Verificar la creación de my-service mediante la migración

¡Felicitaciones!

Migraste una instancia de Compute Engine a un Pod de Kubernetes con Migrate to Containers. Esta misma técnica puede utilizarse para otras fuentes de VM, incluidas VMware vSphere, AWS y Azure.

Finaliza la Quest

Este lab de autoaprendizaje es parte de la Quest VM Migration. Una Quest es una serie de labs relacionados que forman una ruta de aprendizaje. Si completas esta Quest, obtendrás una insignia como reconocimiento por tu logro. Puedes hacer públicas tus insignias y agregar vínculos a ellas en tu currículum en línea o en tus cuentas de redes sociales. Inscríbete en cualquier Quest que contenga este lab y obtén un crédito inmediato de finalización. Consulta el catálogo de Google Cloud Skills Boost para ver todas las Quests disponibles.

Realiza tu próximo lab

Próximos pasos/Más información

Finaliza el lab

Cuando completes el lab, haz clic en Finalizar lab. Tu cuenta y los recursos que usaste se quitaron de la plataforma del lab.

Tendrás la oportunidad de calificar tu experiencia en el lab. Selecciona la cantidad de estrellas que corresponda, ingresa un comentario y haz clic en Enviar.

La cantidad de estrellas indica lo siguiente:

  • 1 estrella = Muy insatisfecho
  • 2 estrellas = Insatisfecho
  • 3 estrellas = Neutral
  • 4 estrellas = Satisfecho
  • 5 estrellas = Muy satisfecho

Puedes cerrar el cuadro de diálogo si no deseas proporcionar comentarios.

Para enviar comentarios, sugerencias o correcciones, usa la pestaña Asistencia.

Actualización más reciente del manual: 18 de noviembre de 2022

Prueba más reciente del lab: 6 de junio de 2022

Copyright 2025 Google LLC. All rights reserved. Google y el logotipo de Google son marcas de Google LLC. Los demás nombres de productos y empresas pueden ser marcas de las respectivas empresas a las que estén asociados.

Este contenido no está disponible en este momento

Te enviaremos una notificación por correo electrónico cuando esté disponible