Transición a repositorios con compatibilidad con dominios gcr.io

Si en la actualidad usas Container Registry para administrar las imágenes de contenedor, en esta página, se explica cómo configurar los repositorios de Artifact Registry con la compatibilidad con el dominio gcr.io. Un repositorio gcr.io en Artifact Registry tiene algunas funciones que son compatibles con versiones anteriores de Container Registry.

Estas instrucciones están destinadas principalmente a los administradores de repositorios. Para obtener información sobre cómo cambió la compilación, el envío, la extracción y la implementación de imágenes, consulta la siguiente información:

Antes de comenzar

La API de Resource Manager debe estar habilitada en tu proyecto de Google Cloud para verificar uno de los permisos requeridos en estas instrucciones.

Puedes habilitar la API desde Cloud Console o con el siguiente comando:

gcloud services enable cloudresourcemanager.googleapis.com

Descripción general

Los repositorios de Artifact Registry compatibles con el dominio gcr.io proporcionan varias funciones retrocompatibles:

  • Redirecciona de forma automática las solicitudes de los nombres de host de Container Registry a los repositorios gcr.io de Artifact Registry.
  • Usa gcloud container images o los comandos gcloud artifacts equivalentes.

Si tienes mucha automatización existente para realizar la transición, estas funciones pueden ayudarte a realizar la transición a Artifact Registry más rápido. Sin embargo, para proporcionar retrocompatibilidad, los repositorios gcr.io en Artifact Registry tienen algunas limitaciones de funciones y es posible que no sean compatibles con las funciones nuevas de Artifact Registry.

Los repositorios estándar y los repositorios con compatibilidad con el dominio gcr.io pueden coexistir para que puedas realizar la transición de forma gradual. Por ejemplo:

  • Puedes crear repositorios gcr.io en Artifact Registry a fin de realizar la transición de tu configuración existente de Container Registry y crear repositorios estándar para trabajos nuevos.
  • Puedes adoptar un enfoque de varias etapas para la transición. Realiza la transición a los repositorios gcr.io en Artifact Registry y, luego, cambia de forma gradual a los repositorios estándar a medida que actualices tu automatización para ser compatible por completo con las rutas de imágenes y repositorios de Artifact Registry.

De lo contrario, si necesitas compatibilidad total con las funciones de Artifact Registry o si deseas asegurarte de que haya nuevas funciones disponibles para tus repositorios, pasa directamente a los repositorios estándar.

Limitaciones

Las siguientes limitaciones se aplican a los repositorios compatibles con el dominio gcr.io:

  • Para crear repositorios de gcr.io de Artifact Registry, debe haber al menos un host de Container Registry en tu proyecto de Google Cloud. No puedes asignar un host de Container Registry a un repositorio de Artifact Registry en un proyecto diferente.
  • Cada nombre de host de Container Registry se asigna a un solo repositorio gcr.io de Artifact Registry en la misma multirregión.
  • Los nombres de los repositorios gcr.io están predefinidos y no puedes modificarlos.
  • Algunas funciones no son compatibles:
    • Protege un repositorio gcr.io en un perímetro de servicio de los Controles del servicio de VPC.
    • Enumera repositorios con solicitudes de catálogo de Docker.
    • Los comandos gcloud artifacts docker no admiten resúmenes abreviados. Si especificas una imagen con un resumen, debes especificar la string del resumen completo.

Asigna hosts de Container Registry a los repositorios de Artifact Registry

En el siguiente ejemplo, se muestra cómo una ruta de imagen de Container Registry y la ruta de imagen correspondiente en un repositorio gcr.io cuando el redireccionamiento está habilitado. Aunque los usuarios de tus repositorios no necesitarán usar las rutas de imágenes y repositorios de Artifact Registry, comprender la asignación para el redireccionamiento es útil cuando configuras y pruebas tus repositorios gcr.io.

Container Registry. Artifact Registry.
Proyecto: my-project Proyecto: my-project
Nombre de host del registro: gcr.io Nombre del repositorio: gcr.io
Ruta de acceso a la imagen: gcr.io/my-project/my-image Ruta de acceso a la imagen: us-docker.pkg.dev/my-project/gcr.io/my-image

Pasos para la transición

En esta guía, se muestra cómo completar los siguientes pasos:

  1. Obtén más información sobre los precios de Artifact Registry antes de comenzar la transición.
  2. Actualiza el SDK de Cloud y obtén información sobre los nuevos comandos de gcloud.
  3. Habilita la API de Artifact Registry.
  4. Crea repositorios de Docker para los hosts de Container Registry en el proyecto.
  5. Otorga permisos al repositorio.
  6. Configura la autenticación para que puedas conectarte con tu repositorio nuevo.
  7. Si es necesario, copia las imágenes de Container Registry que desees usar en tu nuevo repositorio.
  8. Habilita el redireccionamiento para que puedas verificar que las solicitudes existentes de envío y extracción a gcr.io en tu automatización usen tus nuevos repositorios de Docker. El cambio no será permanente hasta que finalices el redireccionamiento.
  9. Verifica que tu automatización existente pueda enviar y extraer imágenes.
  10. Cuando estés seguro de que tus repositorios funcionan como se espera, finaliza el redireccionamiento del tráfico de gcr.io.
  11. Configura las funciones adicionales.
  12. Limpia las imágenes en Container Registry cuando se complete la transición.

Habilitar servicio

Para usar Artifact Registry, habilita la API de Artifact Registry desde Cloud Console o mediante el siguiente comando:

gcloud services enable artifactregistry.googleapis.com

Actualiza y configura el SDK de Cloud

Container Registry usa comandos gcloud container images.

Artifact Registry usa comandos gcloud artifacts para las imágenes.

  1. Instala el SDK de Cloud, si aún no se encuentra instalado.

  2. Actualiza los componentes de gcloud.

    gcloud components update
    

Comparación de los comandos de gcloud

En la siguiente tabla, se resumen los comandos de Container Registry y los comandos equivalentes de Artifact Registry en la herramienta de gcloud. Haz clic en un vínculo de la tabla para ver la página de referencia del comando.

En la tabla, no se incluyen todos los comandos disponibles de Artifact Registry que no tengan un equivalente en Container Registry. Consulta la documentación de gcloud artifacts para ver la referencia completa del comando de Artifact Registry.

Operación Container Registry Artifact Registry
Cree un repositorio No aplicable gcloud artifacts repositories create
Borra un repositorio No aplicable gcloud artifacts repositories delete
Mostrar lista de imágenes gcloud container images list gcloud artifacts docker images list
Enumera etiquetas gcloud container images list-tags gcloud artifacts docker tags list
Agregar una etiqueta gcloud container images add-tag gcloud artifacts docker tags add
Borra una etiqueta gcloud container images untag gcloud artifacts docker tags delete
Describe imágenes gcloud container images describe gcloud artifacts docker image list --include-tags

Crea repositorios

Container Registry crea automáticamente un bucket de almacenamiento en una multirregión si no enviaste una imagen allí antes. En Artifact Registry, debes crear un repositorio para poder subir imágenes.

Puedes usar un panel especial en Google Cloud Console para crear repositorios de gcr.io con rapidez, o puedes crear repositorios de gcr.io de forma manual. Debe haber al menos un host de Container Registry en tu proyecto para crear repositorios de gcr.io de Artifact Registry.

Creación rápida de repositorios

Mediante estos pasos, se crean repositorios de gcr.io en Artifact Registry para los hosts de Container Registry existentes en el proyecto. Los repositorios se encriptan con claves de encriptación administradas por Google. Si quieres usar claves de encriptación administradas por el cliente (CMEK), debes crear repositorios de forma manual.

Si deseas crear repositorios de gcr.io para tus hosts de Container Registry, sigue estos pasos:

  1. Abre la página Repositorios en Cloud Console.

    Abrir la página Repositorios

    En la página, un banner muestra el mensaje You have gcr.io repositories in Container Registry. Si descartaste el banner o si este no aparece, abre la página Configuración.

    Abrir la página Configuración

  2. En el banner, haz clic en Crear repositorios de gcr.io.

    En el panel Crear repositorios de gcr.io, se muestra una lista de los nombres de host de Container Registry en tu proyecto.

  3. Selecciona los nombres de host que quieras transferir a Artifact Registry. Artifact Registry muestra la ruta completa del repositorio gcr.io correspondiente debajo de la lista de nombres de host.

  4. Haga clic en Crear.

Artifact Registry crea repositorios para cada nombre de host que seleccionaste y los agrega a la lista de repositorios. Para ver rápidamente la URL de Artifact Registry del repositorio, colocar el cursor sobre el ícono de advertencia (“”) junto al nombre del repositorio.

Antes de redireccionar el tráfico a tus repositorios nuevos, debes asegurarte de que la automatización existente pueda acceder al repositorio. En el siguiente paso, se configuran los permisos para otorgar acceso a los repositorios.

Creación manual de repositorios

Crea repositorios de gcr.io de forma manual si descartaste el banner con la opción rápida de creación del repositorio o si deseas usarClaves de encriptación administradas por el cliente (CMEK) para encriptar el contenido del repositorio.

Para crear un repositorio gcr.io de forma manual, sigue estos pasos:

  1. Si usas CMEK, crea la clave que usarás con este repositorio y otorga permisos para usar la clave. Consulta Habilita claves de encriptación administradas por el cliente.

  2. Agrega el repositorio.

    Console

    1. Abre la página Repositorios en Cloud Console.

      Abrir la página Repositorios

    2. Haz clic en Crear repositorio.

    3. Especifica el nombre del repositorio.

      Nombre de host de Container Registry Nombre del repositorio de Artifact Registry
      gcr.io gcr.io
      asia.gcr.io asia.gcr.io
      eu.gcr.io eu.gcr.io
      us.gcr.io us.gcr.io
    4. Especifica Docker como el formato del repositorio.

    5. En Tipo de ubicación, especifica la multirregión para el repositorio:

      Nombre de host de Container Registry Ubicación del repositorio de Artifact Registry
      gcr.io us
      asia.gcr.io asia
      eu.gcr.io europa
      us.gcr.io us
    6. Agrega una descripción para el repositorio. No incluyas datos sensibles, ya que las descripciones de los repositorios no están encriptadas.

    7. En la sección Encriptación, elige el mecanismo de encriptación para el repositorio.

      • Clave administrada por Google: Encripta el contenido de un repositorio mediante una clave de encriptación administrada por Google.
      • Clave administrada por el cliente: Encripta el contenido de un repositorio mediante una clave que controlas a través de Cloud Key Management Service. Si deseas obtener instrucciones para la configuración de claves, consulta Configura CMEK para repositorios.
    8. Haga clic en Crear.

    gcloud

    Ejecuta el siguiente comando para crear un repositorio nuevo.

    gcloud artifacts repositories create REPOSITORY \
    --repository-format=docker [--location=LOCATION] \
    [--description=DESCRIPTION] [--kms-key=KMS-KEY] [--async]
    

    Reemplaza los siguientes valores:

    • REPOSITORY es el nombre del repositorio. Para la ubicación de cada repositorio en un proyecto, los nombres de los repositorios deben ser únicos.

      Nombre de host de Container Registry Nombre del repositorio de Artifact Registry
      gcr.io gcr.io
      asia.gcr.io asia.gcr.io
      eu.gcr.io eu.gcr.io
      us.gcr.io us.gcr.io
    • LOCATION es la multirregión del repositorio:

      Nombre de host de Container Registry Ubicación del repositorio de Artifact Registry
      gcr.io us
      asia.gcr.io asia
      eu.gcr.io europa
      us.gcr.io us
    • DESCRIPTION es una descripción del repositorio. No incluyas datos sensibles, ya que las descripciones del repositorio no están encriptadas.

    • KMS-KEY es la ruta completa a la clave de encriptación de Cloud KMS, si usas una clave de encriptación administrada por el cliente para encriptar el contenido del repositorio. La ruta de acceso tiene el siguiente formato:

      projects/KMS-PROJECT/locations/KMS-LOCATION/keyRings/KEY-RING/cryptoKeys/KEY
      

      Donde

      • KMS-PROJECT es el proyecto en el que se almacena la clave.
      • KMS-LOCATION es la ubicación de la clave.
      • KEY-RING es el nombre del llavero de claves.
      • KEY es el nombre de la clave.
    • --async se muestra de inmediato, sin necesidad de esperar a que se complete la operación en curso.

    Para confirmar que el repositorio se creó, enumera tus repositorios con el siguiente comando:

    gcloud artifacts repositories list
    

Antes de redireccionar el tráfico a tus repositorios nuevos, debes asegurarte de que la automatización existente pueda acceder al repositorio. En el siguiente paso, se configuran los permisos para otorgar acceso a los repositorios.

Otorga permisos a los repositorios

En Container Registry, el control de acceso se basa en las funciones y los permisos de Cloud Storage. Si no deseas otorgar una función a nivel de proyecto, debes otorgar permisos en el bucket de almacenamiento específico que usa Container Registry.

Artifact Registry tiene sus propias funciones de IAM. Puedes otorgar funciones a nivel de proyecto o puedes configurar permisos en repositorios individuales. Usa varios repositorios de Docker junto con permisos específicos del repositorio para controlar el acceso a los diferentes tipos de artefactos. Por ejemplo, puedes colocar controles más estrictos en un repositorio de producción o puedes otorgar acceso a repositorios específicos de un equipo en función la membresía del equipo.

Las cuentas de servicio para integraciones comunes con Artifact Registry tienen permisos predeterminados en los repositorios del mismo proyecto. Si usas un servicio de Google Cloud en un proyecto diferente o una herramienta de terceros para enviar o extraer imágenes, debes configurar los permisos adecuados de forma manual.

Para obtener instrucciones sobre cómo otorgar permisos, consulta Otorga permisos.

Autentica en el repositorio

Artifact Registry admite los mismos métodos de autenticación que Container Registry. Puedes seguir usando tus clientes existentes de Docker con Artifact Registry.

Si usas el auxiliar de credenciales de Docker para la autenticación, solo admite nombres de host gcr.io de forma predeterminada. Si necesitas conectarte a nombres de host pkg.dev y gcr.io, puedes agregar los nombres de host necesarios a la configuración del auxiliar de credenciales. Si deseas obtener más información, consulta Configura la autenticación para Docker.

Copia contenedores desde Container Registry

Si hay contenedores en Container Registry que desees seguir usando en Artifact Registry, existen varias opciones para copiarlos. Para obtener instrucciones detalladas, consulta Copia imágenes de Container Registry.

Cuando especifiques el repositorio gcr.io de destino, usa la ruta de acceso de Artifact Registry del repositorio en el siguiente formato:

LOCATION-docker.pkg.dev/PROJECT/REPOSITORY

Aquí:

  • LOCATION es la multirregión en la que se encuentra el repositorio.

    Nombre de host de Container Registry Ubicación del repositorio de Artifact Registry
    gcr.io us
    asia.gcr.io asia
    eu.gcr.io europa
    us.gcr.io us
  • PROJECT es el ID del proyecto.

  • REPOSITORY es el nombre del repositorio:

    Nombre de host de Container Registry Nombre del repositorio de Artifact Registry
    gcr.io gcr.io
    asia.gcr.io asia.gcr.io
    eu.gcr.io eu.gcr.io
    us.gcr.io us.gcr.io

Para ver rápidamente la URL de Artifact Registry de un repositorio gcr.io que creaste en Cloud Console, coloca el cursor sobre el ícono de advertencia ("") junto al nombre del repositorio.

Ejemplos

Mediante los siguientes comandos de ejemplo, se copian todas las imágenes de un host de Container Registry al repositorio gcr.io de Artifact Registry correspondiente en el proyecto my-project.

Para gcr.io:

gcrane cp -r gcr.io/my-project us-docker.pkg.dev/my-project/gcr.io

Para asia.gcr.io:

gcrane cp -r asia.gcr.io/my-project asia-docker.pkg.dev/my-project/asia.gcr.io

Para eu.gcr.io:

gcrane cp -r eu.gcr.io/my-project europe-docker.pkg.dev/my-project/eu.gcr.io

Para us.gcr.io:

gcrane cp -r us.gcr.io/my-project us-docker.pkg.dev/my-project/us.gcr.io

Configura otras funciones

En esta sección, se describe la configuración de otras funciones que puedes haber configurado en Container Registry.

Análisis del contenedor

Container Analysis admite Container Registry y Artifact Registry. En la documentación de Container Analysis, se incluyen ambos productos.

  • Ambos productos usan las mismas API de Container Analysis. Cuando habilitas las API de Container Analysis en Container Registry o Artifact Registry, las API se activan para ambos productos.
  • Ambos productos usan los mismos temas de Pub/Sub para las notificaciones de Container Analysis. Después de habilitar el redireccionamiento, todas las suscripciones existentes incluirán notificaciones para las imágenes en los repositorios gcr.io.
  • Puedes seguir usando los comandos de gcloud container images para enumerar notas y casos asociados con rutas de acceso de imágenes de gcr.io.

Notificaciones de Pub/Sub

Artifact Registry publica cambios en el mismo tema gcr que Container Registry. No se requiere ninguna configuración adicional si ya usas Pub/Sub con Container Registry en el mismo proyecto que Artifact Registry. Sin embargo, Artifact Registry no publica mensajes para los repositorios gcr.io hasta que habilites el redireccionamiento. Después de habilitar el redireccionamiento, el tema gcr incluirá notificaciones para Artifact Registry y Container Registry.

Si configuras Artifact Registry en un proyecto diferente, es posible que el tema gcr no exista. Para obtener instrucciones de configuración, consulta Configura notificaciones de Pub/Sub.

Habilitar el redireccionamiento del tráfico de gcr.io

Para habilitar o finalizar el redireccionamiento, debes tener estos permisos a nivel de proyecto:

  • artifacts.projectsettings.update: Permisos para actualizar la configuración del proyecto de Artifact Registry. Este permiso está en la función de administrador de repositorio de Artifact Registry (roles/artifactregistry.repoAdmin).
  • storage.buckets.update: Permisos para actualizar los depósitos de almacenamiento en todo el proyecto. Este permiso se encuentra en la función de administrador de almacenamiento (roles/storage.admin).

Si no tienes estos permisos, solicita a un administrador que les otorgues a nivel de proyecto.

Mediante los siguientes comandos, se otorgan las funciones de administrador de repositorio de Artifact Registry y administrador de almacenamiento en un proyecto.

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member=MEMBER \
    --role=roles/artifactregistry.repoAdmin

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member=MEMBER \
    --role=roles/storage.admin

Reemplaza los siguientes valores:

  • PROJECT_ID es el ID del proyecto de Google Cloud.
  • MEMBER es la dirección de correo electrónico de la cuenta que estás actualizando. Por ejemplo: user:my-user@example.com.

Después de crear tus repositorios de gcr.io y configurar los permisos y la autenticación para tus clientes de terceros, puedes habilitar el redireccionamiento del tráfico de gcr.io

Todo el tráfico a gcr.io, asia.gcr.io, eu.gcr.io y us.gcr.io se redirecciona, incluso si no creaste repositorios de gcr.io para todos los nombres de host de Container Registry. Por ejemplo, si el proyecto my-project tiene repositorios de gcr.io para todos los nombres de host de Container Registry, excepto eu.gcr.io, las solicitudes para enviar o extraer de eu.gcr.io/my-project mostrarán un 404 Not Found.

Cuando habilitas el redireccionamiento, el cambio no será permanente hasta que finalices el redireccionamiento. Puedes enrutar el tráfico a Container Registry si necesitas realizar cambios adicionales antes de finalizar el redireccionamiento.

Valida la configuración del proyecto

Para validar la configuración de tu proyecto, ejecuta el siguiente comando:

gcloud beta artifacts settings enable-upgrade-redirection \
    --project=PROJECT_ID --dry-run

Reemplaza PROJECT_ID por el ID del proyecto de Google Cloud.

Artifact Registry verifica los repositorios que se asignan a los nombres de host de Container Registry.

Si todos tus hosts de Container Registry tienen un repositorio de Docker de Artifact Registry correspondiente, el resultado se verá como el siguiente ejemplo:

Redirection enablement report:

Container Registry Host  Location  Artifact Registry Repository
gcr.io                   us        projects/my-project/locations/us/repositories/gcr.io
eu.gcr.io                eu        projects/my-project/locations/us/repositories/eu.gcr.io

PASS: Redirection enablement checks passed.

Dry run enabled, no changes made.

Si un nombre de host en tu proyecto no tiene un repositorio gcr.io correspondiente, Artifact Registry muestra una advertencia. Por ejemplo, si el nombre de host gcr.io no tiene un repositorio de Docker de Artifact Registry correspondiente llamado gcr.io, el resultado incluye una advertencia similar a esta:

WARNING: Not all Container Registry repositories have Artifact Registry
repositories created to handle redirected requests.

Container Registry repository 'gcr.io' should redirect to an Artifact Registry
Docker repository in location 'us' named 'gcr.io'. This repository can be
created with:

gcloud artifacts repositories create gcr.io --location=us --project=my-project
--repository-format=DOCKER

If Artifact Registry repositories are not created, the following Container
Registry repositories will no longer serve requests:
gcr.io

Active el redireccionamiento

Si desea activar el redireccionamiento para el tráfico de gcr.io, siga estos pasos:

Console

  1. Abre la página Configuración de Cloud Console.

    Abrir la página Configuración

  2. Haz clic en Enruta a Artifact Registry.

gcloud

Para habilitar el redireccionamiento, ejecuta el siguiente comando:

gcloud beta artifacts settings enable-upgrade-redirection \
    --project=PROJECT_ID

Reemplaza PROJECT_ID por el ID del proyecto de Google Cloud.

Mediante el comando, se muestra una lista de hosts de Container Registry redireccionados. Por ejemplo:

Container Registry Host  Location  Artifact Registry Repository
gcr.io                   us        projects/my-project/locations/us/repositories/gcr.io

Para comprobar el estado actual del redireccionamiento, ejecute el siguiente comando:

gcloud beta artifacts settings describe

Cuando se habilita el redireccionamiento, el resultado es el siguiente:

legacyRedirectionState: REDIRECTION_FROM_GCR_IO_ENABLED

Con el redireccionamiento habilitado, puede probar su automatización y verificar que puede enviar y extraer imágenes mediante sus repositorios gcr.io nuevos. Si es necesario, puedes redireccionar el tráfico a Container Registry y, luego, volver a habilitar el redireccionamiento cuando estés listo para continuar con las pruebas.

Cuando esté todo listo para que el redireccionamiento sea permanente, puede finalizar el redireccionamiento.

Enruta el tráfico de vuelta a Container Registry

Si es necesario, puedes enrutar el tráfico de gcr.io a Container Registry. Puedes habilitar el redireccionamiento de nuevo cuando estés listo.

Console

  1. Abre la página Configuración de Cloud Console.

    Abrir la página Configuración

  2. Haz clic en Enruta a Container Registry.

gcloud

  1. Ejecuta el siguiente comando:

    gcloud beta artifacts settings disable-upgrade-redirection \
        --project=PROJECT_ID
    

    Reemplaza PROJECT_ID por el ID del proyecto de Google Cloud.

    Artifact Registry te solicita que confirmes.

  2. Para confirmar el redireccionamiento de nuevo a Container Registry, ingresa y.

Verifica el redireccionamiento

Verifica que las solicitudes de extracción y envío a los nombres de host de gcr.io funcionen correctamente.

  1. Envía una imagen de prueba a uno de tus repositorios de gcr.io mediante su ruta de acceso gcr.io.

    1. Etiqueta la imagen con la ruta gcr.io. Por ejemplo, este comando etiqueta la imagen local-image como us.gcr.io/my-project/test-image:

      docker tag local-image us.gcr.io/my-project/test-image
      
    2. Envía la imagen que etiquetaste. Por ejemplo, este comando envía la imagen us.gcr.io/my-project/test-image:

      docker push us.gcr.io/my-project/test-image
      
  2. Enumera imágenes en el repositorio para verificar que se hayan subido de forma correcta. Por ejemplo, para enumerar imágenes en us.gcr.io/my-project, ejecuta el siguiente comando:

    gcloud container images list --repository=us.gcr.io/my-project
    
  3. Extrae la imagen del repositorio mediante la ruta de acceso de Container Registry. Por ejemplo, este comando extrae la imagen us.gcr.io/my-project/test-image.

    docker pull us.gcr.io/my-project/test-image
    

Después de esta prueba inicial, verifica que la automatización existente para compilar e implementar imágenes funcione como se espera, que incluye lo siguiente:

  • Los usuarios y las cuentas de servicio que usan Container Registry aún pueden enviar, extraer e implementar imágenes cuando el redireccionamiento está habilitado.
  • Tu automatización solo envía imágenes a repositorios existentes.
  • Si el análisis de vulnerabilidades de Container Analysis está habilitado, el análisis identifica imágenes con vulnerabilidades en los repositorios gcr.io.
  • Si usas la autorización binaria, tus políticas existentes funcionan de forma correcta para las imágenes implementadas desde los repositorios gcr.io.
  • Las suscripciones a Pub/Sub configuradas incluyen notificaciones para los cambios en tus repositorios de gcr.io.

Finalizar el redireccionamiento del tráfico de gcr.io

Una vez que confirmes que puedes enviar y extraer imágenes de tus repositorios nuevos de forma correcta, puedes finalizar el redireccionamiento del tráfico de gcr.io para que el redireccionamiento sea permanente.

Para finalizar el redireccionamiento, haz lo siguiente:

Console

  1. Abre la página Configuración de Cloud Console.

    Abrir la página Configuración

  2. Haz clic en Finalizar.

gcloud

  1. Ejecuta el siguiente comando:

    gcloud beta artifacts settings finalize-upgrade-redirection \
        --project=PROJECT_ID
    

    Reemplaza PROJECT_ID por el ID del proyecto de Google Cloud.

    Artifact Registry enumera los hosts de Container Registry que están redireccionados en el momento, y te solicita que confirmes que deseas finalizar el redireccionamiento.

  2. Para confirmar el redireccionamiento permanente, ingresa y.

Limpia imágenes de Container Registry

Cuando el redireccionamiento está habilitado, los comandos para borrar imágenes en rutas de acceso gcr.io borran imágenes en el repositorio gcr.io de Artifact Registry correspondiente. No borran las imágenes almacenadas en hosts de Container Registry. A fin de quitar de forma segura todas las imágenes de Container Registry, borra los depósitos de Cloud Storage de cada nombre de host de Container Registry.

Para hacerlo, sigue estos pasos:

  1. Borra cada bucket de almacenamiento de Container Registry:

    Console

    Cloud Console puede borrar de forma masiva y en segundo plano varios millones de objetos. También puede borrar de forma masiva los objetos que comparten un prefijo común, que aparecen como parte de una carpeta cuando se usa Cloud Console.

    1. Ve a la página de Cloud Storage en Cloud Console.
    2. Selecciona el bucket de almacenamiento que quieres borrar:

      • Para gcr.io: artifacts.PROJECT_ID.appspot.com
      • Para otros nombres de host: STORAGE-REGION.artifacts.PROJECT_ID.appspot.com

        Reemplaza los siguientes valores:

        • PROJECT_ID es el ID del proyecto de Google Cloud.
        • STORAGE-REGION es la ubicación del depósito de almacenamiento:
          • us para us.gcr.io
          • eu para eu.gcr.io
          • asia para asia.gcr.io
    3. Haz clic en Borrar. Aparecerá un cuadro de diálogo de confirmación.

    4. Para confirmar la eliminación, ingresa el nombre del bucket y, luego, haz clic en Borrar.

    gsutil

    Si deseas borrar de forma masiva cien mil imágenes o más en un bucket, evita usar gsutil, ya que el proceso de eliminación lleva mucho tiempo en completarse. En su lugar, usa Cloud Console para realizar la operación.

    Para borrar un bucket, usa el comando [gsutil rm][/storage/docs/gsutil/commands/rm] con la marca -r.

    Para el nombre de host gcr.io, ejecuta el siguiente comando:

    gsutil rm -r gs://artifacts.PROJECT_ID.appspot.com
    

    Para otros nombres de host, ejecuta el siguiente comando:

    gsutil rm -r gs://STORAGE-REGION.artifacts.PROJECT_ID.appspot.com
    

    Reemplaza los siguientes valores:

    • PROJECT_ID es el ID del proyecto de Google Cloud.
    • STORAGE-REGION es la ubicación del depósito de almacenamiento:
      • us para us.gcr.io
      • eu para eu.gcr.io
      • asia para asia.gcr.io

    La respuesta se ve como el siguiente ejemplo:

    Removing gs://artifacts.my-project.appspot.com/...
    
  2. Inhabilita la API de Container Registry.

¿Qué sigue?