Realiza la transición desde Container Registry

Artifact Registry es el servicio recomendado para el almacenamiento y la administración de imágenes de contenedor en Google Cloud. Artifact Registry extiende las capacidades de Container Registry como un servicio completamente administrado compatible con imágenes de contenedor y artefactos que no son de contenedor.

Si en este momento usas Container Registry, usa la información de esta página para aprender sobre la transición a Artifact Registry. Aunque Container Registry aún está disponible y es compatible como API de Google Enterprise, las características nuevas solo estarán disponibles en Artifact Registry. Container Registry solo recibirá correcciones de seguridad críticas.

Descripción general

Artifact Registry proporciona las mismas funciones de administración de contenedores que Container Registry y, además, incluye funciones y beneficios adicionales:

Formatos adicionales
Además de las imágenes de contenedor, puedes almacenar y administrar los siguientes formatos:
  • Gráficos de Helm
  • Paquetes de Java, Node.js y Python
  • Paquetes Debian y RPM de Linux
Repositorios regionales
Container Registry solo proporciona hosts de registro multirregionales. Artifact Registry proporciona hosts de registro regionales y multirregionales.
Varios repositorios separados en una sola ubicación
En Container Registry, solo puedes crear un host de registro único en una multirregión y todos los repositorios del registro comparten el mismo bucket de almacenamiento. En Artifact Registry, cada repositorio es un recurso independiente. Puedes aplicar diferentes etiquetas y políticas de administración de identidades y accesos a cada repositorio.
Permisos en el nivel de repositorio
En Container Registry, otorgas permisos para cada host de registro multirregional. No puedes aplicar permisos separados a nivel del repositorio. Artifact Registry ofrece control de acceso a nivel de repositorio.
Funciones de IAM de Artifact Registry
En Container Registry, se usan funciones de Cloud Storage para controlar el acceso y se debe enviar una imagen a un host de registro antes de que puedas configurar los permisos del host. En Artifact Registry, debes usar las funciones de Artifact Registry para otorgar acceso, y existe una separación clara entre las funciones de administrador de repositorio y usuario de repositorio.
Transmisión de imágenes de Google Kubernetes Engine
GKE puede transmitir datos de imágenes aptas según lo solicitado por tus aplicaciones para que las cargas de trabajo puedan inicializarse sin esperar a que se descargue la imagen completa. La transmisión de imágenes proporciona un ajuste de escala automático más rápido, un inicio de pods más rápido y una latencia menor cuando se extraen imágenes grandes.
Implementación de origen de Cloud Run
Implementa servicios nuevos y revisiones nuevas en Cloud Run directamente desde el código fuente con un solo comando del SDK de Cloud. La implementación de origen compila una imagen de contenedor a partir del código, la almacena en Artifact Registry y la implementa en Cloud Run.

Retrocompatibilidad y coexistencia

Puedes usar Artifact Registry y Container Registry en el mismo proyecto. Cuando ves una lista de repositorios con gcloud o Cloud Console, Artifact Registry también enumera los repositorios de Container Registry en el mismo proyecto.

Para aprovechar las capacidades expandidas de Artifact Registry, puedes transferir los contenedores y la automatización a Artifact Registry.

Opciones de transición

Puedes realizar la transición a Artifact Registry mediante una de estas opciones:

Repositorios estándar (recomendado)
Los repositorios normales de Artifact Registry son compatibles con todas las funciones y son completamente independientes de los hosts de Container Registry existentes.
Repositorios con asistencia para el dominio gcr.io

Repositorios especiales que se mapean a los nombres de host gcr.io de Container Registry. Estos repositorios admiten lo siguiente:

  • Comandos gcloud container images
  • Redirecciona el tráfico de los nombres de host gcr.io a los repositorios gcr.io correspondientes en tu proyecto.

Estos repositorios tienen algunas limitaciones de funciones. Sin embargo, si tienes mucha configuración de herramientas, secuencias de comandos o código con referencias de gcr.io, puede ser necesario un enfoque más táctico para realizar la transición a Artifact Registry.

Ambos repositorios 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.

Configura los repositorios

En Artifact Registry, debes crear repositorios antes de enviar imágenes a ellos. Por lo tanto, una parte clave del traslado a Artifact Registry es configurar los repositorios de Artifact Registry y, luego, integrarlos en la automatización de CI/CD.

A fin de proporcionar mayor flexibilidad, se realizaron algunos cambios en la forma en que Artifact Registry representa los repositorios.

Container Registry

Cada ubicación multirregional está asociada a un único bucket de almacenamiento. Organizar tus imágenes en repositorios con un nombre de host es opcional. Considera el siguiente ejemplo que muestra la imagen webapp en tres ubicaciones:

us.gcr.io/my-project/webapp
us.gcr.io/my-project/team1/webapp
us.gcr.io/my-project/team2/webapp

Los repositorios son solo un mecanismo de organización y no restringen el acceso. Cualquier usuario con acceso al bucket de almacenamiento para us.gcr.io en este proyecto puede acceder a todas las versiones de la imagen de contenedor webapp.

Artifact Registry

Cada repositorio es un recurso diferente en tu proyecto. Como cada repositorio es un recurso único, puedes hacer lo siguiente:

  • Otorgarle un nombre, una descripción y etiquetas a cada repositorio
  • Crear varios repositorios en la misma ubicación
  • Configurar permisos específicos del repositorio

Además, la ubicación de un repositorio puede ser una región o una multirregión.

Estos cambios te proporcionan más control de tus repositorios. Por ejemplo, si tienes equipos en São Paulo y en Sídney, puedes crear un repositorio para cada equipo en la región más cercana a una ubicación multirregional.

southamerica-east1-docker.pkg.dev/my-project/team1/webapp
australia-southeast1-docker.pkg.dev/my-project/team2/webapp

Luego, puedes otorgarle a cada equipo permisos solo para el repositorio de ese equipo.

Consulta la guía de configuración a fin de obtener instrucciones para realizar la transición a Artifact Registry.

Envía y extrae imágenes

A fin de ayudarte a adaptar la configuración, los comandos y la documentación existentes diseñados para Container Registry, la siguiente información compara la compilación, el envío, la extracción y la implementación de imágenes.

Comparación de funciones

En esta sección, se resumen los cambios y las mejoras en las características de Container Registry.

Función Container Registry Artifact Registry
Formatos admitidos Solo imágenes de contenedor Varios formatos de artefactos, incluidas las imágenes de contenedor, los paquetes de idioma y los paquetes de SO.
Repositorios
  • Creación: Crea un repositorio en una multirregión de forma automática si aún no enviaste una imagen allí.
  • Ubicación: Solo repositorios multirregionales.
  • Organización: Todos los repositorios en el mismo host multirregional de un proyecto de Google Cloud comparten un único bucket de almacenamiento.
  • Control de acceso: Otorga permisos a nivel de proyecto o en el bucket de almacenamiento para cada host multirregional.
  • Creación: Debes crear un repositorio antes de enviar imágenes a él.
  • Ubicación: Crea repositorios estándar en una multirregión o región. Por ejemplo, la multirregión más cercana para Australia es Asia. Con la asistencia regional, puedes crear un repositorio en el centro de datos de Sídney.
  • Organización: Puedes crear varios repositorios discretos en cada región o multirregión. Aplica etiquetas para agruparlas por equipo, etapa de desarrollo o cualquier otra categoría.
  • Control de acceso: Otorga permisos en el proyecto o en repositorios individuales.
Nombres de host Los hosts están en el dominio gcr.io. Los hosts están en el dominio pkg.dev. Para obtener detalles sobre el formato de nombre, consulta Nombres de repositorios y artefactos.

Puedes usar la compatibilidad con el dominio gcr.io para redireccionar de forma automática el tráfico de tus hosts gcr.io> a los repositorios correspondientes de Artifact Registry en el mismo proyecto.

Permisos
  • Otorga acceso mediante permisos de Cloud Storage.
  • Puedes restringir el acceso a todas las imágenes almacenadas en una multirregión, pero no a repositorios individuales. Por ejemplo, puedes restringir el acceso a us.gcr.io en el proyecto my-project, pero no puedes otorgar permisos específicos para imágenes en us.gcr.io/my-project/team1 y us.gcr.io/my-project/team2.
  • Otorga acceso mediante permisos de Artifact Registry.
  • Puedes restringir el acceso a repositorios individuales. Por ejemplo, puedes controlar por separado el acceso a las imágenes en us-docker.pkg.dev/my-project/team1 y us-docker.pkg.dev/my-project/team2.
Authentication Proporciona varios métodos de autenticación para enviar y extraer imágenes con un cliente de terceros. Artifact Registry admite los mismos métodos de autenticación que Container Registry. Si deseas obtener más detalles, consulta Configura la autenticación para Docker.

Si usas el auxiliar de credenciales de Docker, haz lo siguiente:

  • Se requiere la versión 2.0.0 o una posterior.
  • Las versiones del cliente de Docker anteriores a la 18.03 ya no son compatibles.
  • Debes agregar las ubicaciones de Artifact Registry que usarás para la configuración del auxiliar de credenciales.
Claves de encriptación administradas por el cliente (CMEK) Usa CMEK para encriptar los buckets de almacenamiento que contienen tus imágenes. Usa CMEK para encriptar repositorios individuales.
Uso de Google Cloud Console Visualiza y administra imágenes de Container Registry desde la sección Container Registry de Cloud Console. Consulta una lista de tus repositorios de Artifact Registry y Container Registry en la sección Artifact Registry de Cloud Console. Administra los repositorios y las imágenes de Artifact Registry desde esta página.

Si haces clic en un repositorio de Container Registry, se te dirige a la lista de imágenes en la sección Container Registry de Cloud Console.

Uso de los comandos de la API y de gcloud Usa los comandos de las imágenes de contenedores de gcloud. Los comandos admiten resúmenes abreviados. Si no especificas la string de resumen completa, Container Registry intenta ubicar la imagen correcta en función de la string parcial. Usa comandos de Docker de los artefactos de gcloud. Los comandos no admiten resúmenes abreviados.

Para obtener una comparación de los comandos de gcloud de Container Registry y Artifact Registry, consulta la comparación de los comandos de gcloud.

Artifact Registry también incluye una API para administrar repositorios y artefactos en todos los formatos.

Notificaciones de Pub/Sub Publica cambios en el tema gcr. Publica cambios en el tema gcr. Si creas repositorios en el mismo proyecto que tu servicio existente de Container Registry, la configuración existente de Pub/Sub funciona de forma automática.

Para obtener más información, consulta Configura notificaciones de Pub/Sub.

Imágenes de Docker Hub almacenadas en caché Almacena en caché las imágenes de Docker Hub que se solicitan con mayor frecuencia en mirror.gcr.io. mirror.gcr.io continúa almacenando en caché las imágenes solicitadas con frecuencia de Docker Hub.
Controles del servicio de VPC Puedes agregar Container Registry a un perímetro de servicio. Puedes agregar Artifact Registry a un perímetro de servicio.
Almacenamiento y análisis de metadatos Container Analysis proporciona almacenamiento de metadatos, análisis de vulnerabilidades e integración con servicios que usan los metadatos, como la autorización binaria. Los comandos del SDK de Cloud para trabajar con notas y casos se encuentran en el grupo de las imágenes de contenedores de gcloud. Container Analysis admite el almacenamiento de metadatos y el análisis de vulnerabilidades para las imágenes de contenedores en Artifact Registry y Container Registry.
  • Ambos productos usan las mismas API de Container Analysis. Cuando habilitas las API de Container Analysis en Container Registry o en Artifact Registry, estas se activan para ambos productos.
  • Ambos productos usan los mismos temas de Pub/Sub para las notificaciones de Container Analysis. Las suscripciones existentes incluirán notificaciones para Artifact Registry y Container Registry.
  • Los comandos del SDK de Cloud para trabajar con notas y casos se encuentran en el grupo del Docker de los artefactos de gcloud.
Imágenes que proporciona Google Las imágenes que proporciona Google están alojadas en gcr.io. Estos son algunos ejemplos: Las imágenes que proporciona Google siguen estando disponibles en gcr.io.
Transmisión de imágenes No disponible GKE puede transmitir datos de imágenes aptas en Artifact Registry para un ajuste de escala automático más rápido, un inicio de pods más rápido y una latencia menor cuando se extraen imágenes grandes.
Implementación de origen de Cloud Run No disponible La implementación de origen te permite usar un solo comando del SDK de Cloud para compilar una imagen de contenedor a partir del código fuente, almacenar la imagen en Artifact Registry y, luego, implementarla en Cloud Run.
Precios Los precios de Container Registry se basan en el uso de Cloud Storage, incluido el almacenamiento y la salida de red. Artifact Registry tiene sus propios precios, que se basan en el almacenamiento y el tráfico de salida de la red.