Cómo migrar automáticamente de Container Registry a Artifact Registry

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 gcr.io de Artifact Registry se puede realizar en los extremos de Container Registry que reciben tráfico sin necesidad de tiempo de inactividad ni interrupción 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 los proyectos de gcr.io enumerados en la región correspondiente.
  • Sugerir una política de IAM para cada repositorio y aplicarla o omitirla según la preferencia del usuario
  • Redirecciona todo el tráfico de los extremos gcr.io a Artifact Registry.
  • Copia todas las imágenes de contenedor almacenadas en Container Registry a tus repositorios de gcr.io de Artifact Registry, incluso si ya habilitaste la redirección.

Antes de comenzar

  1. Install the Google Cloud CLI.
  2. To initialize the gcloud CLI, run the following command:

    gcloud init
  3. Enable the Artifact Registry API.

    Enable the API


    La herramienta de migración automática te solicitará que habilites la API de Artifact Registry si omites este paso.

Roles obligatorios

Se requieren los siguientes roles para realizar la transición a los 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 de 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 realizar la transición 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 almacenamiento (roles/storage.objectViewer) en el proyecto, la carpeta o la organización de Container Registry. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

Es posible que tu administrador también pueda otorgar a la cuenta de servicio que usas para la migración los permisos necesarios mediante roles personalizados o con otros roles predefinidos.

Roles de usuario:

Para obtener los permisos que necesitas para realizar la transición a los 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 repositorio de contenedores de Artifact Registry (roles/artifactregistry.containerRegistryMigrationAdmin) en la Google Cloud organización o el proyecto que deseas migrar. 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 repositorios de gcr.io alojados en Artifact Registry

Puedes migrar un solo proyecto Google Cloud o varios Google Cloud proyectos al mismo tiempo con el comando gcloud artifacts docker upgrade migrate.

Para migrar a los repositorios de gcr.io, ejecuta el siguiente comando.

gcloud artifacts docker upgrade migrate \
    --projects=PROJECTS

En este comando, PROJECTS es el ID de un solo proyecto que deseas migrar a los repositorios de gcr.io alojados en Artifact Registry, o una lista separada por comas de los IDs de proyectos que deseas migrar a los 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 los proyectos gcr.io enumerados en la región correspondiente.
  • Sugiere una política de IAM para cada repositorio y la aplica o omite según la preferencia del usuario.
  • Redirecciona todo el tráfico del extremo gcr.io a Artifact Registry. Artifact Registry entrega temporalmente las imágenes que faltan copiándolas desde Container Registry en el momento de la solicitud hasta que se copien todas las imágenes de contenedor en Artifact Registry.
  • Copia todas las imágenes de contenedor almacenadas en tus buckets de gcr.io en los repositorios de gcr.io recién creados alojados en Artifact Registry.
  • Inhabilita la copia en el tiempo de la solicitud. El repositorio gcr.io alojado en Artifact Registry ya no depende de Container Registry.

Si solo deseas copiar 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, que la herramienta debe verificar para detectar 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 copie más de la cantidad de versiones especificada.

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.

¿Qué sigue?