Migra desde una VM de Linux con Migrate to Containers
En esta guía de inicio rápido, crearás una máquina virtual (VM) de Compute Engine y, luego, usarás Migrate to Containers para migrar la VM a Google Kubernetes Engine (GKE).
Antes de comenzar
En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.
Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud. Obtén información sobre cómo verificar si la facturación está habilitada en un proyecto.
Habilita la API de Compute Engine.
Habilita la API de GKE:
Para usar los ejemplos de la línea de comandos de esta guía, haz lo siguiente:
- Instala Google Cloud CLI o actualízala a la última versión.
- Configura una región y una zona predeterminadas.
Crea una VM de Compute Engine con un servidor web
En esta sección, se describe cómo crear una VM simple de Compute Engine que entrega un mensaje “Hello World!”, que puedes usar para realizar pruebas después de que se complete la migración.
En la consola de Google Cloud, haz clic en Activar CloudShell.
Para crear una VM, ejecuta el siguiente comando:
gcloud compute instances create quickstart-instance \ --zone=us-central1-a --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=quickstart-instance
Para crear una regla de firewall que permita solicitudes a la instancia a través de HTTP, ejecuta el siguiente comando:
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
En la consola de Google Cloud, ve a la página Instancias de VM.
Para conectarte a la VM
quickstart-instance
, ubica la fila de la VM y haz clic en SSH.La conexión se establece en una pestaña nueva.
Para instalar el paquete apache2, en la pestaña nueva del comando
quickstart-instance
, ejecuta el siguiente comando: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.
En la misma pestaña, para reemplazar la página web predeterminada de Apache Web Server por una página nueva, ejecuta el siguiente comando:
echo '<!doctype html><html><body><h1>Hello World!</h1></body></html>' | sudo tee /var/www/html/index.html
Vuelve a la página Instancias de VM y copia la dirección IP externa que se muestra para
quickstart-instance
.Pega la dirección IP de la VM en la barra de direcciones del navegador. Agrega el prefijo
http://
.Debería ver la página "Hello World!".
En la página Instancias de VM, selecciona la casilla de verificación que se encuentra en el extremo izquierdo de la fila de
quickstart-instance
.Para detener la VM, haz clic en Detener en la parte superior de la página.
Debes detener la VM antes de iniciar una migración. Puedes volver a iniciarla después de que se complete la migración.
Cree un clúster de procesamiento
En esta sección, crearás un clúster de GKE en Google Cloud que usarás como clúster de procesamiento.
En la consola de Google Cloud, haz clic en Activar CloudShell.
Para crear un clúster de Kubernetes nuevo a fin de usarlo como un clúster de procesamiento, ejecuta el siguiente comando:
gcloud container clusters create migration-processing \ --zone=us-central1-a --machine-type e2-standard-4 \ --image-type ubuntu_containerd --num-nodes 1 \ --enable-stackdriver-kubernetes \ --subnetwork "projects/PROJECT_ID/regions/us-central1/subnetworks/default"
Reemplaza PROJECT_ID con el ID del proyecto.
Espera unos minutos a que finalice la creación del clúster.
Instala Migrate to Containers
En la consola de Google Cloud, ve a la página Migrate to Containers.
Haz clic en la pestaña Clústeres de procesamiento y, luego, en Agregar clúster de procesamiento.
En la lista Tipo de SO de las cargas de trabajo, selecciona Linux y haz clic en Siguiente.
En la lista Seleccionar un clúster, selecciona
migration-processing
y haz clic en Siguiente.En la sección Configuración, deja los valores predeterminados tal como están y haz clic en Siguiente.
En la sección Cuenta de servicio, selecciona Crear una cuenta de servicio nueva.
En el campo Nombre de la cuenta de servicio, ingresa
quickstart-sa1
.Haz clic en Continuar y, luego, en Implementar.
Espera unos minutos para que se complete la configuración del clúster de procesamiento.
Migra la VM de Compute Engine
En las siguientes secciones, debes especificar 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. Luego, debes crear un plan de migración con los detalles de la migración y usarlo para migrar la VM.
Especifica la fuente de migración
En la consola de Google Cloud, ve a la página Migrate to Containers.
Haz clic en Agregar fuente.
En la lista Seleccionar un clúster de procesamiento, selecciona
migration-processing
y haz clic en Siguiente.En el campo Nombre, ingresa
quickstart-source
.Deja el Tipo de origen como Compute Engine y haz clic en Siguiente.
En el campo Proyecto, especifica el ID del proyecto que contiene la VM que deseas migrar.
Selecciona Crear una cuenta de servicio nueva para crear una cuenta que te permita usar Compute Engine como fuente de migración.
En el campo Nombre de la cuenta de servicio, ingresa
quickstart-sa2
.Haz clic en Continuar y, luego, en Agregar fuente.
Cree una migración
En la consola de Google Cloud, ve a la página Migrate to Containers.
Haz clic en Crear migración.
En el campo Nombre de la migración, ingresa
quickstart-migration
.En la lista Seleccionar fuente, selecciona
quickstart-source
.En la lista Tipo de carga de trabajo, selecciona Contenedor del sistema Linux.
En el campo Nombre de la instancia, ingresa
quickstart-instance
.Haz clic en Crear migración.
La migración se agrega a la tabla Migraciones. Sin embargo, la creación de la migración puede tomar varios minutos en completarse. Cuando se completa, la columna Estado se actualiza en la tabla Migraciones.
Implementa la carga de trabajo migrada
A fin de generar los artefactos del contenedor de destino como parte del procesamiento de una VM para la migración, haz lo siguiente:
En la consola de Google Cloud, ve a la página Migrate to Containers.
Para
quickstart-migration
, en la columna Próximos pasos, selecciona Opciones: Generar artefactos. Cuando se generan los artefactos, se actualiza la columna Estado de la migración.Una vez que se complete la migración, haz clic en Activar Cloud Shell.
Para descargar los artefactos YAML generados, ejecuta el siguiente comando:
migctl migration get-artifacts quickstart-migration
El comando descarga los siguientes 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
Para abrir el editor de Cloud Shell, haz clic en Abrir editor.
Abre el archivo
deployment_spec.yaml
y ubica el objetoService
con el nombrequickstart-instance
. Debería aparecer como se muestra a continuación:apiVersion: v1 kind: Service metadata: creationTimestamp: null name: quickstart-instance spec: clusterIP: None selector: app: quickstart-instance type: ClusterIP status: loadBalancer: {} ---
Debajo de la definición
Service
que se muestra arriba, pega la definiciónService
destacada en azul a continuación, que expone el puerto 80 para acceder a tu servidor web a través de HTTP: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 ---
Si es necesario, corrige la sangría de la definición
Service
en el archivo.Guarda el archivo.
Haz clic en Abrir terminal.
Para implementar la VM migrada, ejecuta el siguiente comando:
skaffold run -d eu.gcr.io/PROJECT_ID
Reemplaza PROJECT_ID con el ID del proyecto.
Para obtener la dirección IP externa de la VM migrada, ejecuta el siguiente comando:
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
Para comprobar si la migración se realizó correctamente, abre una pestaña nueva del navegador y visita la página web en la dirección IP externa (asegúrate de usar HTTP y no HTTPS).
http://##.##.###.##
Si ves el texto
Hello World!
en la pantalla, la migración de VM se realizó de forma correcta.Si no puedes acceder a la carga de trabajo migrada, consulta cómo solucionar problemas conocidos.
Realiza una limpieza
Sigue estos pasos para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos que usaste en esta página.
Borra la migración
- En la consola de Google Cloud, ve a la página Migrate to Containers.
- Haz clic en la pestaña Migraciones para ver una tabla con las migraciones disponibles.
- En
quickstart-migration
, haz clic en Borrar a la derecha de la tabla y, luego, selecciona Borrar migración.
Borra la fuente de migración
- En la consola de Google Cloud, ve a la página Migrate to Containers.
- Haz clic en Administrar fuentes para ver la lista de fuentes disponibles.
- En
quickstart-source
, haz clic en Borrar, en la parte derecha de la tabla. - Para confirmar la eliminación, ingresa el texto que se muestra y haz clic en Borrar de nuevo.
Borra el clúster de GKE
- En la consola de Google Cloud, ve a la página Google Kubernetes Engine.
- Selecciona
migration-processing
y, luego, haz clic en Borrar. - Cuando se te solicite confirmación, haz clic en Borrar de nuevo.
Borra las cuentas de servicio
- En Google Cloud Console, ve a la página Cuentas de servicio.
- Selecciona el proyecto en el que creaste las cuentas de servicio.
- Selecciona
quickstart-sa1
yquickstart-sa2
y, luego, haz clic en Borrar. - Cuando se te solicite confirmación, haz clic en Borrar de nuevo.
Borra la VM
- En la consola de Google Cloud, ve a la página Instancias de VM.
- Haz clic en el nombre
quickstart-instance
. - En la parte superior de la página de detalles de la instancia, haz clic en Borrar.
¿Qué sigue?
- Obtén información sobre cómo agrupar en lotes el descubrimiento de invitados y la recopilación de datos.