Implementa una carga de trabajo de Linux en un clúster de destino

Después de migrar una carga de trabajo desde la plataforma de origen, puedes usar los artefactos de implementación que ese proceso genera para implementar el contenedor de carga de trabajo migrado a otro clúster.

Skaffold puede controlar el flujo de trabajo para compilar, enviar e implementar tu aplicación. Para obtener más información, consulta Compila e implementa varias imágenes con Skaffold.

Antes de comenzar

Antes de implementar tu carga de trabajo, debes hacer lo siguiente:

Implementa cargas de trabajo en el clúster de procesamiento

Puedes implementar la carga de trabajo migrada en el mismo clúster que usaste para realizar la migración, que se denomina clúster de procesamiento de Migrate to Containers. En la mayoría de las situaciones, no es necesario realizar ninguna configuración adicional en el clúster de procesamiento porque el clúster ya requiere acceso de lectura/escritura al registro de Docker para realizar una migración.

Realiza la implementación en un clúster de destino con GCR como registro de Docker

A fin de asegurarte de que un clúster de destino tenga acceso a Google Container Registry (GCR), crea un Secret de Kubernetes que contenga las credenciales necesarias para acceder a GCR:

  1. Crea una cuenta de servicio para implementar una migración como se describe en Crea una cuenta de servicio para acceder a Container Registry y Cloud Storage.

    Este proceso te permite descargar un archivo de claves JSON con el nombre m4a-install.json.

  2. Crea un Secret de Kubernetes que contenga las credenciales necesarias para acceder a GCR:

    kubectl create secret docker-registry gcr-json-key \
     --docker-server=gcr.io --docker-username=_json_key --docker-password="$(cat ~/m4a-install.json)" \
     --docker-email=account@project.iam.gserviceaccount.com

    En el ejemplo anterior, se ilustra lo siguiente:

    • docker-registry especifica el nombre del Secret de Kubernetes; en este ejemplo es gcr-json-key.
    • docker-server=gcr.io especifica GCR como el servidor.
    • docker-username=_json_key especifica que el nombre de usuario está contenido en el archivo de claves JSON.
    • docker-password especifica que se use una contraseña del archivo de claves JSON.
    • docker-email especifica la dirección de correo electrónico de la cuenta de servicio.
  3. Configura el Secret de Kubernetes de las siguientes maneras:

    • Cambia el valor imagePullSecrets predeterminado:

      kubectl patch serviceaccount default -p '{"imagePullSecrets": [{"name": "gcr-json-key"}]}'
    • Edita el archivo deployment_spec.yaml para agregar el valor imagePullSecrets a la definición spec.template.spec, como se muestra a continuación:

      spec:
        containers:
        - image: gcr.io/PROJECT_ID/mycontainer-instance:v1.0.0
          name: mycontainer-instance
          ...
        volumes:
        - hostPath:
            path: /sys/fs/cgroup
            type: Directory
          name: cgroups
        imagePullSecrets:
        - name: gcr-json-key

Implementa en un clúster de destino con un registro de Docker con autenticación básica

Si usas un registro de Docker para almacenar imágenes de migración, el registro debe admitir la autenticación básica con un nombre de usuario y una contraseña. Debido a que existen muchas formas de configurar una conexión de solo lectura en un registro de Docker, debes usar el método adecuado para tu plataforma de clúster y registro de Docker.

Aplica el archivo YAML de implementación generado

Usa kubectl para aplicar la especificación de implementación en el clúster de destino, como un clúster de producción.

kubectl

  1. Asegúrate de que el clúster de destino tenga acceso de lectura al registro de imágenes de Docker, como se describió antes en Asegúrate de que el clúster de destino tenga acceso de lectura al registro de imágenes de Docker.

  2. Implementa el contenedor:

    kubectl apply -f deployment_spec.yaml
  3. Después de completar las pruebas de validación en la carga de trabajo migrada para asegurarte de que la carga de trabajo migrada funcione de forma correcta, deberás borrar la migración para liberar recursos. Para obtener más información, consulta Borra una migración.

Borra una migración

Después de validar y probar la carga de trabajo migrada para asegurarte de que funciona de forma correcta, debes borrar la migración. Borrar la migración libera cualquier recurso que utilice la migración.

migctl

  1. Para borrar una migración completa, usa el siguiente comando:

    migctl migration delete MIGRATION_NAME

    En el que MIGRATION_NAME es el nombre de la migración.

Console

  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 hacer que la migración borre, haz clic en el ícono de papelera, , a la derecha de la tabla y, a continuación, selecciona Borrar migración.

¿Qué sigue?