Definir los repositorios de datos

Como parte de la migración, Migrate for Anthos and GKE escriben información en diferentes repositorios de datos:

  1. Los archivos de imagen de Docker que representan una VM de Linux migrada se escriben en un registro de Docker.

    Estos archivos de imagen de Docker representan los archivos y directorios de la VM de Linux migrada. Este repositorio no es necesario cuando se migran cargas de trabajo de Windows.

  2. Los artefactos de migración que representan la carga de trabajo migrada se escriben en un segundo repositorio.

    Los artefactos incluyen los archivos YAML de configuración que puedes usar para implementar las cargas de trabajo migradas y otros archivos. Los artefactos exactos dependen de si migras cargas de trabajo de Linux o Windows.

La implementación y la ubicación predeterminadas de estos repositorios dependen del lugar donde creaste el clúster de procesamiento que se usó para realizar la migración. Dado que no hay repositorios predeterminados para clústeres de Anthos alojados en VMware y clústeres de Anthos en AWS. Debes configurarlos como parte de la instalación de Migrate for Anthos and GKE.

Platform Registro de archivos de imagen de Docker* Repositorio de artefactos de migración
Clústeres de Anthos en Google Cloud La configuración predeterminada es Container Registry (GCR).

Si lo deseas, puedes especificar cualquier registro de Docker que admita la autenticación básica.

La configuración predeterminada es Cloud Storage.

De manera opcional, especifica S3 como el repositorio de artefactos para las migraciones de Linux. S3 no admite la migración de cargas de trabajo de Windows.

Clústeres de Anthos alojados en VMware

No hay predeterminado.

Especifica GCR o cualquier registro de Docker que admita la autenticación básica

No hay predeterminado.

Especifica Cloud Storage o S3 como el repositorio de artefactos.

Clústeres de Anthos en AWS

No hay predeterminado.

Especifica GCR, ECR o cualquier registro de Docker que admita la autenticación básica

No hay predeterminado.

Especifica Cloud Storage o S3 como el repositorio de artefactos.

Anthos alojados en clústeres de equipos físicos La configuración predeterminada es Container Registry (GCR).

Si lo deseas, puedes especificar cualquier registro de Docker que admita la autenticación básica.

La configuración predeterminada es Cloud Storage.

De manera opcional, especifica S3 como el repositorio de artefactos.

* El registro de archivos de imagen de Docker no es necesario para las migraciones de Windows. Solo se requiere para migrar las VM de Linux.

Visualiza el estado del repositorio

Después de instalar Migrate for Anthos and GKE, ejecuta el comando migctl doctor para validar la instalación de Migrate for Anthos and GKE. Como parte de esta validación, el comando migctl doctor verifica el estado de los repositorios:

migctl doctor

En el siguiente resultado de ejemplo del comando migctl doctor, la marca de verificación indica que Migrate for Anthos and GKE se implementó correctamente, pero aún no configuraste los repositorios de datos necesarios:

  [✓] Deployment
  [!] Docker Registry
  [!] Artifacts Repo`
  [!] Source Status

Después de configurar los repositorios, puedes volver a ejecutar el comando migctl doctor para asegurarte de que estén configurados correctamente:

  [✓] Deployment
  [✓] Docker registry
  [✓] Artifacts repo
  [!] Source Status

Asistencia de la consola de Google Cloud

La consola de Google Cloud muestra las URL de los elementos de los repositorios según las implementaciones de estos. Por ejemplo, si el repositorio se implementa con S3, la consola de Google Cloud muestra las URL de un bucket de S3.

Opciones para la ubicación del repositorio

La ubicación de los repositorios de datos puede afectar el rendimiento y el costo de la migración.

Por ejemplo, los archivos de imagen de Docker que representan una VM migrada pueden ser grandes. Si tienes un clúster de procesamiento local, pero escribes los archivos de imagen de Docker en GCR en Google Cloud, se produce latencia de rendimiento en la carga de los datos y se generan costos por almacenar esos datos.

Para un clúster de procesamiento local, puede que te resulte más eficiente definir un registro de Docker local en el clúster. Si cuentas con el registro local, minimizas la latencia de carga y los costos de almacenamiento.

En el caso de un clúster de GKE implementado en Google Cloud, el uso predeterminado de repositorios de GCR proporciona el nivel más alto de rendimiento, pero se te cobra por ese almacenamiento. Sin embargo, no es necesario usar GCR con un clúster basado en la nube y puedes optar por usar tu propio registro de Docker.

Requisitos para nombrar los repositorios

Cuando agregas un nombre a Migrate for Anthos and GKE, debes asignar un nombre a un repositorio. El nombre debe cumplir con los siguientes requisitos:

  • Debe contener 63 caracteres como máximo.
  • Debe contener solo caracteres alfanuméricos en minúscula o “-” (guion).
  • Debe comenzar con un carácter alfanumérico.
  • Debe terminar con un carácter alfanumérico.

Autenticación del repositorio

Todos los repositorios que usan Migrate for Anthos and GKE requieren autenticación. El mecanismo de autenticación depende del tipo de repositorio, como se muestra en la siguiente tabla:

Repositorio Implementación Autenticación
Registro de archivos de imagen de Docker GCR Clave JSON para una cuenta de servicio de Google Cloud.

Consulta Cómo crear una cuenta de servicio para acceder a Container Registry y Cloud Storage a fin de obtener más información.

ECR Clave de acceso y archivo de secretos o de credenciales Consulta Cómo administrar claves de acceso para usuarios de IAM a fin de obtener más información.
Registro de Docker Nombre de usuario y contraseña para la autenticación básica
Repositorio de artefactos de migración Cloud Storage Clave JSON para una cuenta de servicio de Google Cloud.

Consulta Cómo crear una cuenta de servicio para acceder a Container Registry y Cloud Storage a fin de obtener más información.

S3 Clave de acceso y archivo de secretos o de credenciales Consulta Descripción general de la administración del acceso para obtener más información.

Compatibilidad con TLS

Se puede acceder a algunos repositorios mediante TLS/SSL a través de HTTPS. Si la conexión HTTPS al repositorio usa un certificado autofirmado, debes agregar un archivo PEM que contenga cualquiera de los siguientes elementos cuando configuras el repositorio:

  • La clave pública del certificado autofirmado
  • Una concatenación del certificado raíz y todos los certificados intermedios hasta el certificado real del servidor

Configura un registro de Docker

Usa el comando migctl para configurar un registro de Docker. El comando migctl te permite realizar las siguientes acciones en una configuración de registro:

  • Crear
  • Actualizar
  • Borrar
  • Enumerar
  • Predeterminada

Puedes definir varias configuraciones. Migrate for Anthos and GKE usa la configuración definida actualmente como la predeterminada. Usa el comando migctl docker-registry list para ver las configuraciones actuales, incluida la predeterminada. Usa el comando migctl docker-registry set-default para establecer la configuración predeterminada.

En el ejemplo siguiente, se muestra cómo configurar un registro de Docker:

  • GCR

    migctl docker-registry create gcr registry-name --project project-id --json-key=m4a-install.json

    Donde:

    • registry-name es el nombre definido por el usuario de la configuración de registro de Docker.

    • project-id es el ID de tu proyecto de Google.

    • m4a-install.json es el nombre del archivo de claves JSON para la cuenta de servicio a fin de acceder a Container Registry y Cloud Storage, como se describe en Configura una cuenta de servicio.

  • ECR

    migctl docker-registry create ecr registry-name --registry-path url --access-key-id=key-id

    Se te solicitará que ingreses la clave secreta de key-id.

    De manera alternativa, especifica la ruta de acceso a un archivo de credenciales:

    migctl docker-registry create ecr registry-name --registry-path url --credentials-file-path file-path 

    Donde:

    • registry-name es el nombre definido por el usuario de la configuración de registro de Docker.

    • url especifica la URL de la ruta de registro sin los prefijos http:// o https://.

    • key-id especifica la clave de acceso. Consulta Cómo administrar claves de acceso para usuarios de IAM a fin de obtener más información.

    • file-path especifica la ruta a un archivo CSV, descargado de la consola de AWS, que contiene las credenciales. Consulta Configura grupos y funciones de instancia de IAM para AWS a fin de obtener más información sobre cómo crear el archivo CSV.

  • Registro de Docker

    migctl docker-registry create basic-auth registry-name --registry-path url --username username --ca-pem-file ca-pem-filename

    Donde:

    • registry-name es el nombre definido por el usuario de la configuración de registro de Docker.

    • url especifica la URL del registro sin los prefijos http:// o https://. Por ejemplo, localhost:8080/myregistry.

    • username para las credenciales de autenticación básica del registro. Se te solicitará que ingrese la contraseña.

    • Si el registro usa un certificado autofirmado, ca-pem-filename especifica un archivo PEM que contiene la clave pública o la cadena de CA completa, lo que corresponde a una concatenación que abarca desde los certificados de CA intermedios hasta el certificado raíz. Por ejemplo:

      cat int1.pem int2.pem ... root.pem

A fin de actualizar más tarde la configuración del registro, ejecuta el comando migctl docker-registry update con los mismos argumentos que usaste para crearla:

migctl docker-registry update gcr registry-name same-flags-as-create

Cuando configuras un registro de Docker, este se convierte en el registro predeterminado. Sin embargo, puedes tener varios registros definidos. Para ver la lista actual de registros, sigue estos pasos:

migctl docker-registry list

Para establecer la configuración predeterminada del registro, es decir, la que se usa actualmente para las migraciones, usa el siguiente comando:

migctl docker-registry set-default registry-name

Para borrar una configuración de registro:

migctl docker-registry delete registry-name

Configura un repositorio de artefactos

Usa el comando migctl para configurar un repositorio de artefactos. El comando migctl te permite realizar las siguientes acciones en una configuración de repositorio:

  • Crear
  • Actualizar
  • Borrar
  • Enumerar
  • Predeterminada

Puedes definir varias configuraciones. Migrate for Anthos and GKE usa la configuración definida actualmente como la predeterminada. Usa el comando migctl artifacts-repo list para ver las configuraciones actuales, incluida la predeterminada. Usa el comando migctl artifacts-repo set-default para establecer la configuración predeterminada.

En el siguiente ejemplo, se muestra cómo configurar un repositorio de artefactos:

  • Cloud Storage

    migctl artifacts-repo create gcs repository-name --bucket-name bucket-name --json-key=m4a-install.json

    Donde:

    • repository-name es el nombre definido por el usuario de la configuración del repositorio de artefactos.

    • bucket-name especifica un bucket existente en el repositorio de Cloud Storage. Si no tienes un bucket, sigue las instrucciones en Crea buckets de almacenamiento.

      Nota: Cuando instalas Migrate for Anthos and GKE en clústeres en Google Cloud, el instalador de Migrate for Anthos and GKE crea de forma automática un bucket predeterminado llamado:

      GCP_PROJECT-migration-artifacts

      En el ejemplo anterior, GCP_PROJECT es el ID del proyecto de Google. Sin embargo, cuando se instala Migrate for Anthos and GKE en un clúster de procesamiento local o en clústeres de Anthos alojados en AWS, no se crea un bucket predeterminado. Debes crear uno tú mismo.

    • project-id es el ID de tu proyecto de Google.

    • m4a-install.json es el nombre del archivo de claves JSON para la cuenta de servicio a fin de acceder a Container Registry y Cloud Storage, como se describe en Configura una cuenta de servicio.

  • S3

    migctl artifacts-repo create s3 repository-name --bucket-name bucket-name --region aws-region --access-key-id=key-id

    Se te solicitará que ingreses la clave secreta de key-id.

    De manera alternativa, especifica la ruta de acceso a un archivo de credenciales:

    migctl artifacts-repo create s3 repository-name --bucket-name bucket-name --region aws-region --credentials-file-path file-path

    Donde:

    • repository-name es el nombre definido por el usuario de la configuración del repositorio de artefactos.

    • bucket-name especifica un bucket existente en el repositorio S3. Si no tienes un bucket, crea uno con las instrucciones en Trabaja con buckets de Amazon S3.

    • aws-region especifica la región de AWS para el repositorio. El clúster de procesamiento y el repositorio pueden estar en regiones distintas, siempre y cuando el clúster tenga permisos para acceder al repositorio.

    • key-id especifica la clave de acceso. Consulta Descripción general de la administración del acceso para obtener más información.

    • file-path especifica la ruta a un archivo CSV, descargado de la consola de AWS, que contiene las credenciales. Consulta Configura grupos y funciones de instancia de IAM para AWS a fin de obtener más información sobre cómo crear el archivo CSV.

A fin de actualizar más tarde la configuración del repositorio, ejecuta el comando migctl docker-registry update con los mismos argumentos que usaste para crearla:

migctl artifacts-repo update gcr repository-name same-flags-as-create

Cuando configuras un registro de repositorio, este se convierte en el repositorio predeterminado. Sin embargo, puedes tener varios repositorios definidos. Para ver la lista actual de repositorios, sigue estos pasos:

migctl artifacts-repo list

Para establecer la configuración predeterminada del repositorio, es decir, la que se usa actualmente para las migraciones, usa el siguiente comando:

migctl artifacts-repo set-default repository-name

Para borrar una configuración de repositorio, sigue estos pasos:

migctl artifacts-repo delete repository-name

Próximos pasos