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:
- Migra la carga de trabajo con las herramientas de Migrate to Containers.
- Revisar los archivos de implementación generados
Implementación en un clúster de destino
En las siguientes secciones, se describen las opciones disponibles para implementar tu carga de trabajo en un clúster.
Realiza la implementación en un clúster de destino con GCR como registro de Docker
Para asegurarte de que un clúster de destino tenga acceso a Container Registry (GCR), crea un Secret de Kubernetes que contenga las credenciales necesarias para acceder a GCR:
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
.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
dónde:
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.
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 valorimagePullSecrets
a la definiciónspec.template.spec
.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
Asegúrate de que el clúster de destino tenga acceso de lectura al registro de imágenes de Docker.
Implementa el contenedor:
kubectl apply -f deployment_spec.yaml