Realizar 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. Como un servicio completamente administrado compatible con imágenes de contenedor y artefactos que no son de contenedor, Artifact Registry extiende las capacidades de Container Registry.

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 con la API de Google Enterprise, las funciones 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 e incluye características y beneficios adicionales:

Formatos adicionales de artefactos

Puedes crear repositorios para los siguientes formatos de artefactos:

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 único host de registro 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 a nivel del 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, usas funciones de Cloud Storage para controlar el acceso y necesitas enviar una imagen a un host de registro antes de que puedas configurar los permisos para el host. En Artifact Registry, se usan funciones de Artifact Registry para otorgar acceso, y existe una separación clara entre las funciones de administrador de repositorio y de usuario del repositorio.

Transmisión de imágenes de Google Kubernetes Engine

GKE puede transmitir datos desde imágenes aptas según lo que soliciten tus aplicaciones, de modo que las cargas de trabajo puedan inicializarse sin esperar a que se descargue toda la imagen. La transmisión de imágenes proporciona un ajuste de escala automático más rápido, un inicio más rápido de los Pods y una latencia reducida 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 mediante un solo comando de la CLI de Google Cloud. La implementación de origen compila una imagen de contenedor a partir de tu 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 consola, Artifact Registry también enumera los repositorios de Container Registry en el mismo proyecto.

Para aprovechar las capacidades expandidas en Artifact Registry, puedes pasar tus 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 regulares de Artifact Registry que admiten todas las funciones y son completamente independientes de cualquier host de Container Registry existente.
Repositorios compatibles con el dominio gcr.io

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

  • Comandos de gcloud container images
  • Redireccionamiento del tráfico de 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 muchas configuraciones de herramientas, secuencias de comandos o código con referencias de gcr.io, es posible que se necesite un enfoque más táctico para hacer la transición a Artifact Registry.

Ambos tipos de repositorios pueden coexistir para que puedas realizar la transición de forma gradual. Por ejemplo:

  • Puedes crear repositorios de gcr.io en Artifact Registry para realizar la transición de tu configuración existente de Container Registry y crear repositorios estándar para trabajos nuevos.
  • Puedes adoptar una estrategia de varias etapas para la transición. Haz la transición a los repositorios gcr.io en Artifact Registry y, luego, cambia gradualmente a repositorios estándar a medida que actualices tu automatización para admitir completamente el repositorio de Artifact Registry y las rutas de acceso de imágenes.

Configura los repositorios

En Artifact Registry, debes crear repositorios antes de poder enviarles imágenes. Por lo tanto, una parte clave de la migración a Artifact Registry es configurar los repositorios de Artifact Registry e 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 solo bucket de almacenamiento. Organizar tus imágenes en repositorios en 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 existente, los comandos y la documentación 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.

Atributo Container Registry Artifact Registry
Formatos admitidos Solo imágenes de contenedor Varios formatos de artefactos, incluidos imágenes de contenedor, paquetes de lenguajes y 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. Asigna etiquetas para agruparlas por equipo, etapa de desarrollo o alguna 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 del nombre, consulta Nombres de artefactos y repositorios.

Puedes usar la compatibilidad con dominios gcr.io para redireccionar automáticamente el tráfico de tus hosts de 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 las imágenes de 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. Para obtener más información, 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.
Usa Google Cloud Console Visualiza y administra las imágenes de Container Registry desde la sección Container Registry de la consola. Consulta una lista de tus repositorios de Artifact Registry y Container Registry en la sección Artifact Registry de la consola. 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 la consola.

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 más solicitadas 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 de la CLI de Google Cloud para trabajar con notas y casos se encuentran en el grupo gcloud container images. 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. Tus suscripciones existentes incluirán notificaciones de Artifact Registry y Container Registry.
  • Los comandos de la CLI de gcloud para trabajar con notas y casos se encuentran en el grupo gcloud artifacts docker.
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 reducida cuando se extraen imágenes grandes.
Implementación de la fuente de Cloud Run No disponible La implementación de origen te permite usar un solo comando de la CLI de gcloud para compilar una imagen de contenedor de tu código fuente, almacenarla en Artifact Registry e 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 la salida de red.