Definir los repositorios de datos
Como parte de la migración, Migrate for Anthos and GKE escriben información en diferentes repositorios de datos:
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.
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://
ohttps://
.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://
ohttps://
. 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