Usa la herramienta de migración automática para realizar la transición de Container Registry a los repositorios de gcr.io
alojados en Artifact Registry.
La migración a los repositorios de Artifact Registry gcr.io
se puede realizar en los extremos de Container Registry que reciben tráfico sin necesidad de tiempo de inactividad ni interrupciones del servicio.
La herramienta de migración automática puede realizar las siguientes acciones:
- Crea repositorios de
gcr.io
en Artifact Registry para cada uno de tus proyectos degcr.io
que se indican en la región correspondiente. - Sugerir una política de IAM para cada repositorio y aplicar la política o omitir la aplicación según la preferencia del usuario
- Redirige todo el tráfico de los extremos de
gcr.io
a Artifact Registry. - Copia todas las imágenes de contenedor almacenadas en Container Registry en tus repositorios de
gcr.io
de Artifact Registry, incluso si ya habilitaste el redireccionamiento.
Antes de comenzar
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Enable the Artifact Registry API.
La herramienta de migración automática te solicita que habilites la API de Artifact Registry si omites este paso.
Roles obligatorios
Se requieren los siguientes roles para realizar la transición a repositorios de gcr.io
en Artifact Registry con la herramienta de migración automática.
Roles de la cuenta de servicio:
Puedes usar la cuenta de servicio de migración gcr.io
con la dirección de correo electrónico de artifact-registry-same-project-copier@system.gserviceaccount.com
o la cuenta de servicio de Artifact Registry para migrar a los repositorios de gcr.io
en Artifact Registry.
Para asegurarte de que la cuenta de servicio que usas para la migración tenga los permisos necesarios para copiar imágenes de Container Registry a Artifact Registry, pídele a tu administrador que le otorgue a la cuenta de servicio que usas para la migración el rol de IAM de Visualizador de objetos de Storage (roles/storage.objectViewer
) en el proyecto, la carpeta o la organización de Container Registry.
Es posible que tu administrador también pueda otorgar a la cuenta de servicio que usas para la migración los permisos necesarios a través de roles personalizados o de otros roles predefinidos.
Roles del usuario:
Para obtener los permisos que necesitas para migrar a repositorios de gcr.io
alojados en Artifact Registry, pídele a tu administrador que te otorgue el rol de IAM de administrador de migración de Container Registry a Artifact Registry (roles/artifactregistry.containerRegistryMigrationAdmin
) en la organización o el proyecto que deseas migrar. Google Cloud
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.
Migra a los repositorios de gcr.io
alojados en Artifact Registry
Puedes migrar un solo proyecto Google Cloud o varios proyectos Google Cloud al mismo tiempo con el comandogcloud artifacts docker upgrade migrate
.
Para migrar a repositorios de gcr.io
, ejecuta el siguiente comando.
gcloud artifacts docker upgrade migrate \
--projects=PROJECTS
Aquí, PROJECTS es el ID del proyecto de un solo proyecto que deseas migrar a repositorios de gcr.io
alojados en Artifact Registry, o bien una lista separada por comas de los IDs de los proyectos que deseas migrar a repositorios de gcr.io
alojados en Artifact Registry.
La herramienta de migración completa los siguientes pasos:
- Crea repositorios
gcr.io
en Artifact Registry para cada uno de tus proyectosgcr.io
enumerados en la región correspondiente. - Sugiere una política de IAM para cada repositorio y aplica la política o se salta la aplicación según la preferencia del usuario.
- Redirige todo el tráfico del extremo
gcr.io
a Artifact Registry. Artifact Registry publica temporalmente las imágenes faltantes copiándolas de Container Registry en el momento de la solicitud hasta que todas las imágenes de contenedor se copien en Artifact Registry. - Copia todas las imágenes de contenedor almacenadas en tus buckets de
gcr.io
a los repositorios degcr.io
recién creados y alojados en Artifact Registry. - Inhabilita la copia en el momento de la solicitud. El repositorio
gcr.io
alojado en Artifact Registry ya no depende de Container Registry.
Si solo deseas copiar las imágenes extraídas de Container Registry en los últimos 30 a 180 días, puedes incluir la marca --recent-images=DAYS
.
Reemplaza DAYS por la cantidad de días, entre 30 y 180, durante los que la herramienta debe verificar las extracciones.
Si deseas copiar una cantidad específica de versiones subidas recientemente de cada imagen, puedes incluir la marca --last-uploaded-versions=VERSIONS
. Reemplaza VERSIONS por la cantidad de versiones que deseas copiar para cada imagen. Si se suben imágenes nuevas durante la copia, es posible que se copien más versiones de las especificadas.
Las marcas --recent-images
y --last-uploaded-versions
son mutuamente excluyentes y no se pueden usar juntas.
Si encuentras errores o tiempos de espera, puedes volver a ejecutar el comando de forma segura, y se omitirán los pasos completados.
Migra más lento con lecturas canary
Puedes usar la marca --canary-reads
para lanzar solo un porcentaje de lecturas, y ninguna escritura, en Artifact Registry. Las imágenes que faltan y se extraen de Artifact Registry se copian desde Container Registry en el momento de la solicitud.
La migración con lecturas de versión canary tiene dos ventajas:
- Primero, se puede probar el lanzamiento en Artifact Registry en una cantidad mucho menor de solicitudes.
- Las imágenes se siguen enviando a Container Registry durante la mayor parte del proceso, por lo que es más seguro revertir la implementación.
Te recomendamos que sigas este procedimiento:
Para establecer el porcentaje de lecturas de la versión canary en un 1%, ejecuta el siguiente comando:
gcloud artifacts docker upgrade migrate \ --projects=PROJECTS \ --canary-reads=1
Confirma que todo siga funcionando correctamente.
Para establecer el porcentaje de lecturas de la versión canary en un 10%, ejecuta el siguiente comando :
gcloud artifacts docker upgrade migrate \ --projects=PROJECTS \ --canary-reads=10
Confirma que todo siga funcionando correctamente.
Para establecer las lecturas de la versión canary en el 100%, ejecuta el siguiente comando:
gcloud artifacts docker upgrade migrate \ --projects=PROJECTS \ --canary-reads=100
En este punto, todas las lecturas se envían a Artifact Registry y todas las escrituras se siguen enviando a Container Registry.
Para completar la migración, envía escrituras a Artifact Registry también ejecutando el comando artifacts docker upgrade migrate
sin la marca --canary-reads
:
gcloud artifacts docker upgrade migrate \
--projects=PROJECTS
Lecturas de reversión de Canary
Para revertir las lecturas de la versión canary, ejecuta el siguiente comando:
gcloud artifacts docker upgrade migrate \
--projects=PROJECTS \
--canary-reads=0
Las lecturas de Canary también se inhabilitan cuando se ejecutan los comandos gcloud artifacts settings disable-upgrade-redirection
o gcloud artifacts settings enable-upgrade-redirection
.
Cuota de AnalyzeIamPolicy
Si migras una gran cantidad de proyectos y se te agota la cuota de AnalyzeIamPolicy, puedes usar la marca --no-use-analyze-iam
. Usar la marca --no-use-analyze-iam
para la migración es más lento que no usarla, pero evita enviar solicitudes a la cuota de AnalyzeIamPolicy.