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

Usar la herramienta de migración automática para realizar la transición de Container Registry a Repositorios de gcr.io alojados en Artifact Registry o en la versión estándar de Artifact Registry de Cloud Storage.

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 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.
  • Sugiere una política de IAM para cada repositorio y aplica el política u omitir la aplicación según las preferencias del usuario.
  • Redirecciona 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 tus repositorios de gcr.io o repositorios estándar de Artifact Registry, incluso si ya habilitaste 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 realizas la transición a repositorios estándar de Artifact Registry, habilita la API de Artifact Registry en el proyecto al que deseas migrar tus imágenes de contenedores 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, haz lo siguiente: iam.roles.get
  • Para usar Google Cloud CLI y analizar políticas, haz lo siguiente: 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 opción de transición.

Repositorios de gcr.io

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 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 un solo proyecto de Google Cloud o varios proyectos de Google Cloud 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

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 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 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 los 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 Estados Unidos.
      • us.gcr.io aloja las imágenes en los Estados Unidos, en un bucket de almacenamiento independiente de las 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 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 aún no existe.
  • 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 la herramienta debería verificar las extracciones dentro.

Si se producen errores o se agota el tiempo de espera, puedes volver a ejecutar el comando de manera segura. se omitirán los pasos completados.

Cómo 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 la herramienta para copiar imágenes a 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

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 omite todos los pasos de migración y copia las imágenes de los proyectos especificados de Container Registry a los repositorios de 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 Estados Unidos.
    • us.gcr.io aloja las imágenes en Estados Unidos, en un espacio 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 un error o un tiempo de espera durante el proceso.

¿Qué sigue?