Migra automáticamente de Container Registry a Artifact Registry

Usa la herramienta de migración automática para hacer la transición de Container Registry a los repositorios de gcr.io alojados en Artifact Registry o a los repositorios estándar de Artifact Registry.

La herramienta de migración automática puede realizar las siguientes acciones según la ruta de transición que elijas:

  • Crea repositorios de gcr.io o repositorios estándar en Artifact Registry para cada uno de los proyectos de gcr.io enumerados en la región correspondiente.
  • Sugiere una política de IAM para cada repositorio y aplica la política, o bien omite la aplicación según las preferencias 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 en tus repositorios gcr.io o estándar de Artifact Registry, incluso si ya habilitaste la redirección.

Antes de comenzar

  1. Instala Google Cloud CLI.
  2. Para inicializar la CLI de gcloud, ejecuta el siguiente comando:

    gcloud init
  3. Elige una opción para la transición.
    • Si realizas la transición a repositorios de gcr.io alojados en Artifact Registry, habilita la API de Artifact Registry en los proyectos de Container Registry que desees migrar. La herramienta también te pedirá que habilites la API de Artifact Registry si omites este paso.

      Habilita la API de Artifact Registry.

      Habilita la API

    • Si haces la transición a repositorios estándar de Artifact Registry, habilita la API de Artifact Registry en el proyecto al que deseas migrar las imágenes de contenedor de Container Registry. Puedes usar el mismo proyecto en el que está habilitado Container Registry o uno diferente.

      Habilita la API de Artifact Registry.

      Habilita la API

Funciones obligatorias

Las siguientes funciones son obligatorias para todas las opciones de transición que usan la herramienta de migración automática.

Roles que requiere la cuenta de servicio de Artifact Registry:

Para asegurarte de que la cuenta de servicio de Artifact Registry tenga los permisos necesarios para copiar imágenes de Container Registry a Artifact Registry, pídele al administrador que otorgue a la cuenta de servicio de Artifact Registry el rol de IAM de visualizador de objetos de Storage (roles/storage.objectViewer) en el proyecto de Container Registry. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso.

Es posible que el administrador también pueda otorgarle los permisos necesarios a la cuenta de servicio de Artifact Registry a través de roles personalizados o bien otros roles predefinidos.

Roles necesarios para generar recomendaciones de IAM:

Para obtener los permisos que necesitas para analizar una política de permisos, pídele a tu administrador que te otorgue los siguientes roles de IAM en los proyectos de Container Registry que deseas migrar:

Si quieres obtener más información para otorgar funciones, consulta Administra el acceso.

Estos roles predefinidos contienen los permisos necesarios para analizar una política de permisos. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

Se requieren los siguientes permisos para analizar una política de permisos:

  • cloudasset.assets.analyzeIamPolicy
  • cloudasset.assets.searchAllResources
  • cloudasset.assets.searchAllIamPolicies
  • Para analizar las políticas con roles de IAM personalizados, haz lo siguiente: iam.roles.get
  • Si quieres usar Google Cloud CLI para analizar políticas, haz lo siguiente: serviceusage.services.use

Es posible que también puedas obtener estos permisos con funciones personalizadas o con otras funciones predefinidas.

Las siguientes funciones se otorgan en diferentes recursos según tu opción de transición.

Repositorios de gcr.io

A fin de obtener los permisos que necesitas para realizar la transición a los repositorios gcr.io alojados en Artifact Registry, pídele a tu administrador que te otorgue los siguientes roles de IAM:

  • Crear repositorios de Artifact Registry y otorga acceso a repositorios individuales: Administrador de Artifact Registry (roles/artifactregistry.admin) en el proyecto de Google Cloud que contiene tus imágenes de Container Registry
  • Visualiza y administra la configuración existente de Container Registry aplicada a los buckets de almacenamiento de Cloud Storage: Administrador de almacenamiento (roles/storage.admin) en el proyecto de Google Cloud que contiene tus imágenes de Container Registry

Si quieres obtener más información para otorgar funciones, consulta Administra el acceso.

Es posible que también puedas obtener los permisos necesarios a través de los roles personalizados o de otros roles predefinidos.

repositorios estándar

A fin de obtener los permisos que necesitas para realizar la transición a los repositorios estándar de Artifact Registry, pídele a tu administrador que te otorgue los siguientes roles de IAM:

  • Crear repositorios de Artifact Registry y otorga acceso a repositorios individuales: Administrador de Artifact Registry (roles/artifactregistry.admin) en el proyecto de Google Cloud en el que está habilitada la API de Artifact Registry
  • Visualiza y administra la configuración existente de Container Registry aplicada a los buckets de almacenamiento de Cloud Storage: Administrador de almacenamiento (roles/storage.admin) en el proyecto de Google Cloud que contiene tus imágenes de Container Registry

Si quieres obtener más información para otorgar funciones, consulta Administra el acceso.

Es posible que también puedas obtener los permisos necesarios a través de los roles personalizados o de otros roles predefinidos.

Migra a los repositorios de gcr.io alojados en Artifact Registry

Puedes migrar uno o varios proyectos de Google Cloud al mismo tiempo con el comando gcloud artifacts docker upgrade migrate.

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

gcloud artifacts docker upgrade migrate \
    --projects=PROJECTS

En el que PROJECTS es el ID del proyecto que quieres migrar a los repositorios de gcr.io alojados en Artifact Registry, o una lista separada por comas de los IDs de proyecto que deseas migrar a los repositorios gcr.io alojados en Artifact Registry.

La herramienta de migración completa los siguientes pasos:

  • Crea repositorios de gcr.io en Artifact Registry para cada uno de los proyectos de gcr.io enumerados en la región correspondiente.
  • Sugiere una política de IAM para cada repositorio y la aplica, o bien omite la aplicación según las preferencias del usuario.
  • Redirecciona todo el tráfico del extremo gcr.io a Artifact Registry. Artifact Registry entrega temporalmente las imágenes que faltan. Para ello, cópialas 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 en los repositorios de gcr.io recién creados alojados en Artifact Registry.
  • Inhabilita la copia en tiempo de 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 90 días, puedes incluir la marca --recent-images=DAYS. Reemplaza DAYS por la cantidad de días, entre 30 y 90, en 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 que la cantidad 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 agotados, puedes volver a ejecutar el comando con seguridad y se omitirán los pasos completados.

Migra a repositorios estándar de Artifact Registry

  1. Para migrar tu proyecto gcr.io a un repositorio de Artifact Registry, ejecuta el siguiente comando.

    gcloud artifacts docker upgrade migrate \
        --from-gcr=GCR_HOSTNAME/GCR_PROJECT \
        --to-pkg-dev=AR_PROJECT/AR_REPOSITORY
    

    Reemplaza lo siguiente:

    • GCR_HOSTNAME por el nombre de host de Container Registry El nombre de host depende de la ubicación en la que se almacenan las imágenes de contenedor:

      • gcr.io aloja las imágenes en los Estados Unidos.
      • us.gcr.io aloja las imágenes en los Estados Unidos, en un bucket de almacenamiento independiente de las imágenes que aloja gcr.io.
      • eu.gcr.io aloja las imágenes dentro de los estados miembros de la Unión Europea.
      • asia.gcr.io aloja las imágenes en Asia.
    • GCR_PROJECT por el ID del proyecto de Google Cloud de Container Registry. Si el ID de tu proyecto contiene dos puntos (:), consulta Proyectos con alcance de dominio.

    • AR_PROJECT por el ID del proyecto de Google Cloud en el que habilitaste la API de Artifact Registry

    • AR_REPOSITORY por el nombre de tu repositorio de Artifact Registry

La herramienta de migración completa los siguientes pasos:

  • Crea el repositorio de Artifact Registry si el repositorio aún no existe.
  • Sugiere una política de IAM para el repositorio y la aplica, o bien omite la aplicación según las preferencias del usuario.
  • Copia imágenes en la región y el proyecto de Container Registry especificados en tu repositorio de Artifact Registry.

Si solo deseas copiar las imágenes extraídas de Container Registry en los últimos 30 a 90 días, puedes incluir la marca --recent-images=DAYS. Reemplaza DAYS por la cantidad de días, entre 30 y 90, en los que la herramienta debe verificar las extracciones.

Si encuentras errores o tiempos de espera agotados, puedes volver a ejecutar el comando con seguridad y se omitirán los pasos completados.

Copiar imágenes

La herramienta de migración copia las imágenes de contenedor de forma automática cuando las ejecutas, pero si deseas omitir todos los demás pasos de la migración automática y usar la herramienta para copiar imágenes en Artifact Registry, puedes pasar la marca --copy-only.

Para copiar imágenes de Container Registry a un repositorio gcr.io alojado en Artifact Registry, ejecuta el siguiente comando:

gcloud artifacts docker upgrade migrate \
    --projects=PROJECTS \
    --copy-only

En el que PROJECTS es el ID del proyecto que quieres migrar a los repositorios de gcr.io alojados en Artifact Registry, o una lista separada por comas de los IDs de proyecto que deseas migrar a los repositorios gcr.io alojados en Artifact Registry.

La herramienta omite todos los pasos de migración y copia las imágenes de los proyectos especificados desde Container Registry a los repositorios gcr.io alojados en Artifact Registry.

Para copiar imágenes de Container Registry a un repositorio estándar de Artifact Registry, ejecuta el siguiente comando:

gcloud artifacts docker upgrade migrate \
    --from-gcr=GCR_HOSTNAME/GCR_PROJECT \
    --to-pkg-dev=AR_PROJECT/AR_REPOSITORY \
    --copy-only

Reemplaza lo siguiente:

  • GCR_HOSTNAME por el nombre de host de Container Registry El nombre de host depende de la ubicación en la que se almacenan las imágenes de contenedor:

    • gcr.io aloja las imágenes en los Estados Unidos.
    • us.gcr.io aloja las imágenes en los Estados Unidos, en un bucket de almacenamiento independiente de las imágenes que aloja gcr.io.
    • eu.gcr.io aloja las imágenes dentro de los estados miembros de la Unión Europea.
    • asia.gcr.io aloja las imágenes en Asia.
  • GCR_PROJECT por el ID del proyecto de Google Cloud de Container Registry. Si el ID de tu proyecto contiene dos puntos (:), consulta Proyectos con alcance de dominio.

  • AR_PROJECT por el ID del proyecto de Google Cloud en el que habilitaste la API de Artifact Registry

  • AR_REPOSITORY por el nombre de tu repositorio de Artifact Registry

La herramienta omite todos los pasos de migración y copia las imágenes de la ubicación y el proyecto especificados en Container Registry a tu repositorio de Artifact Registry.

También puedes usar la marca --copy-only para reiniciar la copia de imágenes si tienes un error o se agotó el tiempo de espera durante el proceso.

¿Qué sigue?