Migrar automáticamente de Container Registry a Artifact Registry

Usa la herramienta de migración automática para migrar 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 gcr.io de la lista en la región correspondiente.
  • Sugerir una política de IAM para cada repositorio y aplicarla o omitirla según la preferencia del usuario
  • Redireccionar todo el tráfico de los extremos de gcr.io a Artifact Registry
  • Copia todas las imágenes de contenedor almacenadas en Container Registry a tu Artifact Registry Repositorios gcr.io o estándar, incluso si ya está habilitado y el redireccionamiento.

Antes de comenzar

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

    gcloud init
  3. Elige una opción de transición.
    • Si estás realizando 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 deseas migrar. La herramienta también te solicitará que habilites la API de Artifact Registry si omites este paso.

      Enable the Artifact Registry API.

      Enable the API

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

      Enable the Artifact Registry API.

      Enable the API

Roles obligatorios

Los siguientes roles son obligatorios para todas las opciones de transición que usan la configuración herramienta de migración.

Roles requeridos por la cuenta de servicio de Artifact Registry:

Para asegurarte de que la cuenta de servicio de Artifact Registry cuente con los permisos necesarios permisos para copiar imágenes de Container Registry a Artifact Registry Pídele a tu administrador que otorgue el acceso a la cuenta de servicio de Artifact Registry 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 a proyectos, carpetas y organizaciones.

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

Roles necesarios para generar recomendaciones de IAM:

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

Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

Estos roles predefinidos contienen los permisos necesarios para analizar una política de permiso. 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 permiso:

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

También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.

Los siguientes roles se otorgan en diferentes recursos según tu de transición.

Repositorios de gcr.io

Si quieres obtener los permisos que necesitas para realizar la transición a los repositorios de gcr.io alojados en Artifact Registry, solicita a tu administrador que te otorgue el los siguientes roles de IAM:

  • Crea 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

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.

repositorios estándar

Para 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:

  • Crea 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

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 uno o varios proyectos de Google Cloud al mismo tiempo con gcloud artifacts docker upgrade migrate .

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

gcloud artifacts docker upgrade migrate \
    --projects=PROJECTS

Donde PROJECTS es el ID del proyecto único que deseas migrar a repositorios de gcr.io alojados en Artifact Registry o a una lista separada lista de los IDs de los proyectos que quieres migrar a los repositorios de 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 siguientes elementos: tus proyectos de 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 gcr.io en la plataforma recién creada Repositorios de gcr.io 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 imágenes extraídas de Container Registry en los últimos 30 a 150 días, puedes incluir la marca --recent-images=DAYS. Reemplaza DAYS por la cantidad de días, entre 30 y 150, que la la herramienta debería verificar las extracciones dentro.

Si quieres copiar un número específico de versiones cargadas recientemente de cada puedes incluir el --last-uploaded-versions=VERSIONS marca. Reemplaza VERSIONS por la cantidad de versiones que deseas copiar. para cada imagen. Si se suben imágenes nuevas durante la copia, se supera la cantidad de las versiones especificadas.

Las marcas --recent-images y --last-uploaded-versions se consideran mutuamente son exclusivas 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 a repositorios estándar de Artifact Registry

  1. Para migrar tu proyecto de gcr.io a un repositorio de Artifact Registry, ejecuta el siguiente comando: 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 dónde se almacenan tus 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 bloque independiente de almacenamiento de Google bucket a partir de imágenes alojadas por gcr.io.
      • eu.gcr.io aloja las imágenes dentro de estados miembros de la Unión Europea.
      • asia.gcr.io aloja las imágenes en Asia.
    • GCR_PROJECT por tu cuenta de Google Cloud para Container Registry ID del proyecto: 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 aún no lo ha hecho. existen.
  • Sugiere una política de IAM para el repositorio y la aplica o omite según la preferencia del usuario.
  • Copia las imágenes de la región de Container Registry especificada y las transfiere a tu repositorio de Artifact Registry.

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

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

Copiar imágenes

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

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 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 omite todos los pasos de migración y copia imágenes en las imágenes proyectos de 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 dónde se almacenan tus 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 bloque independiente de almacenamiento de Google bucket a partir de imágenes alojadas por gcr.io.
    • eu.gcr.io aloja las imágenes dentro de estados miembros de la Unión Europea.
    • asia.gcr.io aloja las imágenes en Asia.
  • GCR_PROJECT por tu cuenta de Google Cloud para Container Registry ID del proyecto: 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 imágenes de las imágenes. y el proyecto 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 una o el tiempo de espera durante el proceso.

¿Qué sigue?