Compartir por


Caché de artefacto en Azure Container Registry

La característica Caché de artefacto permite a los usuarios almacenar en caché imágenes de contenedor en un registro de contenedor privado. Caché de artefacto está disponible en los niveles de servicio Básico, Estándar y Premium.

La caché de artefacto mejora la administración de imágenes de contenedor al proporcionar una solución de almacenamiento en caché para repositorios públicos y privados.

La caché de artefacto ofrece operaciones de extracción más rápidas y confiables mediante Azure Container Registry (ACR), que usan características como la replicación geográfica y la compatibilidad con la zona de disponibilidad para las extracción de imágenes de mayor disponibilidad y velocidad.

La caché de artefactos permite que los registros almacenados en caché sean accesibles a través de redes privadas para que los usuarios se alineen con las configuraciones de firewall y los estándares de cumplimiento sin problemas.

La caché de artefactos aborda el desafío de los límites de extracción impuestos por los registros públicos. Se recomienda a los usuarios autenticar sus reglas de caché con sus credenciales de origen ascendentes. A continuación, extraiga imágenes de ACR local para ayudar a mitigar los límites de velocidad.

Terminología

  • Regla de caché: Una regla de caché es una regla que puede crear para extraer artefactos de un repositorio compatible en la memoria caché.

    • Una regla de caché contiene cuatro partes:

      • Nombre de la regla: El nombre de la regla de caché. Por ejemplo: Hello-World-Cache.

      • Origen: El nombre del registro de origen.

      • Ruta de acceso del repositorio: Ruta de acceso de origen del repositorio para buscar y recuperar artefactos que desea almacenar en caché. Por ejemplo: docker.io/library/hello-world.

      • Nuevo espacio de nombres del repositorio de ACR: El nombre de la nueva ruta de acceso del repositorio para almacenar artefactos. Por ejemplo: hello-world. El repositorio todavía no puede existir dentro de la instancia de ACR.

  • Credenciales

    • Las credenciales son un conjunto de nombre de usuario y contraseña para el registro de origen. Necesita credenciales para autenticarse en un repositorio público o privado. Las credenciales contienen cuatro partes:

      • Credenciales: El nombre de las credenciales.

      • Servidor de inicio de sesión del registro de origen: El servidor de inicio de sesión del registro de origen.

      • Autenticación de origen: Las ubicaciones del almacén de claves para almacenar las credenciales.

      • Secretos de nombre de usuario y contraseña: Los secretos que contienen el nombre de usuario y la contraseña.

Limitaciones

  • El almacenamiento en caché solo se producirá después de que se complete al menos una extracción de imagen en el contenedor disponible. Para cada nueva imagen disponible, se debe completar una nueva extracción de imagen. La caché de artefacto no extrae automáticamente nuevas etiquetas de imágenes cuando hay disponible una etiqueta nueva. Está en la hoja de ruta, pero no se admite en esta versión.

  • Caché de artefacto solo admite 1000 reglas de caché.

Compatibilidad ascendente

La caché de artefacto admite actualmente los siguientes registros ascendentes:

Advertencia

Los clientes deben generar conjunto de credenciales para extraer el contenido de Docker Hub.

Registros ascendentes Soporte técnico Disponibilidad
Docker Hub Solo admite las extracción autenticadas. CLI de Azure, Azure Portal
Registro de artefactos Microsoft Solo admite extracciones no autenticadas. CLI de Azure, Azure Portal
Galería pública de AWS Elastic Container Registry (ECR) Solo admite extracciones no autenticadas. CLI de Azure, Azure Portal
Registro de contenedores de GitHub Admite tanto las extracciones autenticadas como las no autenticadas. CLI de Azure, Azure Portal
Quay Admite tanto las extracciones autenticadas como las no autenticadas. CLI de Azure, Azure Portal
registry.k8s.io Admite tanto las extracciones autenticadas como las no autenticadas. CLI de Azure
Container Registry de Google Admite tanto las extracciones autenticadas como las no autenticadas. CLI de Azure

Comodines

El carácter comodín usa asteriscos (*) para buscar coincidencias con varias rutas de acceso dentro del registro de imágenes de contenedor. La caché de artefacto admite actualmente los siguientes caracteres comodín:

Nota:

La asignación de reglas de caché del repositorio de destino => repositorio de origen.

Carácter comodín de nivel del registro

El carácter comodín de nivel del registro permite almacenar en caché todos los repositorios de un registro ascendente.

Regla de caché Asignación Ejemplo
contoso.azurecr.io/* => mcr.microsoft.com/* Asignación de todas las imágenes de ACR a MCR. contoso.azurecr.io/myapp/image1 => mcr.microsoft.com/myapp/image1
contoso.azurecr.io/myapp/image2 => mcr.microsoft.com/myapp/image2

Carácter comodín de nivel de repositorio

El carácter comodín de nivel de repositorio permite almacenar en caché todos los repositorios de una asignación ascendente del registro al prefijo del repositorio.

Regla de caché Asignación Ejemplo
contoso.azurecr.io/dotnet/* => mcr.microsoft.com/dotnet/* Asignación de repositorios específicos en ACR a los repositorios correspondientes en MCR. contoso.azurecr.io/dotnet/sdk => mcr.microsoft.com/dotnet/sdk
contoso.azurecr.io/dotnet/runtime => mcr.microsoft.com/dotnet/runtime
contoso.azurecr.io/library/dotnet/* => mcr.microsoft.com/dotnet/*
contoso.azurecr.io/library/python/* => docker.io/library/python/*
Asignación de repositorios específicos en ACR a repositorios de diferentes registros ascendentes. contoso.azurecr.io/library/dotnet/app1 => mcr.microsoft.com/dotnet/app1
contoso.azurecr.io/library/python/app3 => docker.io/library/python/app3

Limitaciones de las reglas de caché basadas en caracteres comodín

Las reglas de caché con caracteres comodín usan asteriscos (*) para buscar coincidencias con varias rutas de acceso dentro del registro de imágenes de contenedor. Estas reglas no se pueden superponer con otras reglas de caché con caracteres comodín. En otras palabras, si tiene una regla de caché con caracteres comodín para una determinada ruta de acceso del registro, no puede agregar otra regla de caracteres comodín que se superponga con ella.

Estos son algunos ejemplos de reglas superpuestas:

Ejemplo 1:

Regla de caché existente: contoso.azurecr.io/* => mcr.microsoft.com/*
Nueva caché que se va a agregar: contoso.azurecr.io/library/* => docker.io/library/*

La adición de la nueva regla de caché se bloquea porque la ruta de acceso del repositorio de destino contoso.azurecr.io/library/* se superpone con la regla de caracteres comodín existente contoso.azurecr.io/*.

Ejemplo 2:

Regla de caché existente: contoso.azurecr.io/library/*=>mcr.microsoft.com/library/*
Nueva caché que se va a agregar: contoso.azurecr.io/library/dotnet/* =>docker.io/library/dotnet/*

La adición de la nueva regla de caché se bloquea porque la ruta de acceso del repositorio de destino contoso.azurecr.io/library/dotnet/* se superpone con la regla de caracteres comodín existente contoso.azurecr.io/library/*.

Limitaciones de las reglas de caché estáticas o fijas

Las reglas de caché estáticas o fijas son más específicas y no usan caracteres comodín. Pueden superponerse con reglas de caché basadas en caracteres comodín. Si una regla de caché especifica una ruta de acceso de repositorio fija, se permite su superposición con una regla de caché basada en caracteres comodín.

Ejemplo 1:

Regla de caché existente: contoso.azurecr.io/* =>mcr.microsoft.com/*
Nueva caché que se va a agregar: contoso.azurecr.io/library/dotnet =>docker.io/library/dotnet

Se permite la adición de la nueva regla de caché porque contoso.azurecr.io/library/dotnet es una ruta de acceso estática y puede superponerse con la regla de caché con caracteres comodín contoso.azurecr.io/*.

Habilitación de la caché de artefacto: CLI de Azure

Puede habilitar la caché de artefacto en Azure Container Registry con o sin autenticación mediante la CLI de Azure siguiendo los pasos.

Requisitos previos

Configure y cree una regla de caché sin las credenciales.

  1. Ejecute el comando az acr Cache create para crear una regla de Caché.

    • Por ejemplo, para crear una regla de caché sin las credenciales para una instancia de Azure Container Registry MyRegistry determinada.
    az acr Cache create -r MyRegistry -n MyRule -s docker.io/library/ubuntu -t ubuntu-
    
  2. Ejecute el comando az acr Cache show para mostrar una regla de Caché.

    • Por ejemplo, a fin de mostrar una regla de Caché para un Azure Container Registry MyRegistry determinado.
     az acr Cache show -r MyRegistry -n MyRule
    

Creación de las credenciales

Antes de configurar las credenciales, deberá crear y almacenar secretos en Azure KeyVault y recuperar los secretos de la instancia de Key Vault. Obtenga más información sobre crear y almacenar credenciales en un Key Vault. Y para establecer y recuperar un secreto desde Azure Key Vault.

  1. Ejecute el comando az acr credential set create para crear las credenciales.

    • Por ejemplo, para crear las credenciales para una instancia de Azure Container Registry MyRegistry determinada.
    az acr credential-set create 
    -r MyRegistry \
    -n MyDockerHubCredSet \
    -l docker.io \ 
    -u https://MyKeyvault.vault.azure.net/secrets/usernamesecret \
    -p https://MyKeyvault.vault.azure.net/secrets/passwordsecret
    
  2. Ejecute az acr credential set update para actualizar el identificador de secreto de KV de nombre de usuario o contraseña en un conjunto de credenciales.

    • Por ejemplo, para actualizar el nombre de usuario o el identificador de secreto de KV de contraseña en las credenciales de una instancia de Azure Container Registry MyRegistry determinada.
    az acr credential-set update -r MyRegistry -n MyDockerHubCredSet -p https://MyKeyvault.vault.azure.net/secrets/newsecretname
    
  3. Ejecute az acr credential-set show para mostrar las credenciales.

    • Por ejemplo, para mostrar un conjunto de credenciales en un MyRegistry Azure Container Registry determinado.
    az acr credential-set show -r MyRegistry -n MyDockerHubCredSet
    

Configuración y creación de una regla de caché con las credenciales

  1. Ejecute el comando az acr cache create para crear una regla de caché.

    • Por ejemplo, para crear una regla de caché con las credenciales para una instancia de Azure Container Registry MyRegistry determinada.
    az acr cache create -r MyRegistry -n MyRule -s docker.io/library/ubuntu -t ubuntu -c MyDockerHubCredSet
    
  2. Ejecute el comando az acr cache update para actualizar las credenciales en una regla de caché.

    • Por ejemplo, para actualizar las credenciales en una regla de caché de una instancia de Azure Container Registry MyRegistry determinada.
    az acr cache update -r MyRegistry -n MyRule -c NewCredSet
    
    • Por ejemplo, para quitar las credenciales de una regla de caché existente para una instancia de Azure Container Registry MyRegistry determinada.
    az acr cache update -r MyRegistry -n MyRule --remove-cred-set
    
  3. Ejecute el comando az acr cache show para mostrar una regla de caché.

    • Por ejemplo, para mostrar una regla de caché para un Azure Container Registry determinado MyRegistry.
     az acr cache show -r MyRegistry -n MyRule
    

Asignación de permisos a Key Vault mediante directivas de acceso (heredadas)

  1. Obtenga el identificador de entidad de seguridad de la identidad del sistema en uso para acceder a Key Vault.

    PRINCIPAL_ID=$(az acr credential-set show 
                    -n MyDockerHubCredSet \ 
                    -r MyRegistry  \
                    --query 'identity.principalId' \ 
                    -o tsv) 
    
  2. Ejecute el comando az keyvault set-policy para asignar acceso al Key Vault, antes de extraer la imagen.

    • Por ejemplo, para asignar permisos para las credenciales, acceda al secreto de KeyVault
    az keyvault set-policy --name MyKeyVault \
    --object-id $PRINCIPAL_ID \
    --secret-permissions get
    

Extracción de una imagen

  1. Extraiga la imagen de la memoria caché mediante el comando Docker por el nombre del servidor de inicio de sesión del Registro, el nombre del repositorio y su etiqueta deseada.

    • Por ejemplo, extraer la imagen del repositorio hello-world con su etiqueta deseada latest para un servidor de inicio de sesión del Registro myregistry.azurecr.io.
     docker pull myregistry.azurecr.io/hello-world:latest
    

Limpiar los recursos

  1. Ejecute el comando az acr cache list para enumerar las reglas de caché en el Azure Container Registry.

    • Por ejemplo, para mostrar las reglas de caché para un Azure Container Registry determinado MyRegistry.
     az acr cache list -r MyRegistry
    
  2. Ejecute el comando az acr cache delete para eliminar una regla de caché.

    • Por ejemplo, para eliminar una regla de caché para un Azure Container Registry determinado MyRegistry.
    az acr cache delete -r MyRegistry -n MyRule
    
  3. Ejecute az acr credential set list para enumerar los conjuntos de credenciales en una instancia de Azure Container Registry.

    • Por ejemplo, para mostrar los conjuntos de credenciales para una instancia de Azure Container Registry MyRegistry determinada.
    az acr credential-set list -r MyRegistry
    
  4. Ejecute az acr credential-set delete para eliminar las credenciales.

    • Por ejemplo, para eliminar las credenciales para una instancia de Azure Container Registry MyRegistry determinada.
    az acr credential-set delete -r MyRegistry -n MyDockerHubCredSet
    

Habilitación de la caché de artefacto: Azure Portal

Puede habilitar la caché de artefacto en Azure Container Registry con o sin autenticación mediante Azure Portal siguiendo los pasos.

Requisitos previos

Configuración de la caché de artefacto sin credenciales

Siga los pasos para crear una regla de caché en Azure Portal.

  1. Navegue a la instancia de Azure Container Registry.

  2. En el Menú lateral, en Servicios, seleccione Caché.

    Captura de pantalla de la caché del Registro en Azure Portal

  3. Seleccione Crear regla.

    Captura de pantalla de Crear regla en Azure Portal.

  4. Aparece una ventana para New cache rule (Nueva regla de caché).

    Captura de pantalla de la nueva regla de caché en Azure Portal

  5. Escriba el Nombre de la regla.

  6. Seleccione el registro de Origen en el menú desplegable.

  7. Escriba la ruta de acceso del repositorio a los artefactos que quiere almacenar en caché.

  8. Puede omitir la autenticación, si no tiene acceso a un repositorio privado ni realiza una extracción autenticada.

  9. En Destino, escriba el nombre del nuevo espacio de nombres del repositorio de ACR para almacenar artefactos almacenados en caché.

    Captura de pantalla para guardar la regla de caché en Azure Portal

  10. Seleccione Guardar.

  11. Extraiga la imagen de la memoria caché mediante el comando Docker por el nombre del servidor de inicio de sesión del Registro, el nombre del repositorio y su etiqueta deseada.

    • Por ejemplo, para extraer la imagen del repositorio hello-world con su etiqueta deseada latest para un servidor myregistry.azurecr.io de inicio de sesión del Registro determinado.
     docker pull myregistry.azurecr.io/hello-world:latest
    

Configuración de la caché de artefacto con la autenticación

Siga los pasos para crear una regla de caché en Azure Portal.

  1. Navegue a la instancia de Azure Container Registry.

  2. En el Menú lateral, en Servicios, seleccione Caché.

    Captura de pantalla de la caché del Registro en Azure Portal

  3. Seleccione Crear regla.

    Captura de pantalla de Crear regla en Azure Portal.

  4. Aparece una ventana para New cache rule (Nueva regla de caché).

    Captura de pantalla de la nueva regla de caché con autenticación en Azure Portal

  5. Escriba el Nombre de la regla.

  6. Seleccione el registro de Origen en el menú desplegable.

  7. Escriba la Repository Path (Ruta de acceso del repositorio) en los artefactos que quiere almacenar en caché.

  8. Para agregar autenticación al repositorio, active la casilla Autenticación.

  9. Elija Create new credentials (Crear credenciales) para crear un conjunto de credenciales a fin de almacenar el nombre de usuario y la contraseña del registro de origen. Obtenga información sobre cómo crear credenciales personalizadas.

  10. Si tiene las credenciales listas, elija Seleccionar credenciales en el menú desplegable.

  11. En Destino, escriba el nombre del nuevo espacio de nombres del repositorio de ACR para almacenar artefactos almacenados en caché.

    Captura de pantalla para guardar la regla de caché en Azure Portal

  12. Seleccione Guardar.

  13. Extraiga la imagen de la memoria caché mediante el comando Docker por el nombre del servidor de inicio de sesión del Registro, el nombre del repositorio y su etiqueta deseada.

    • Por ejemplo, para extraer la imagen del repositorio hello-world con su etiqueta deseada latest para un servidor myregistry.azurecr.io de inicio de sesión del Registro determinado.
     docker pull myregistry.azurecr.io/hello-world:latest
    

Crear nuevas credenciales

Antes de configurar las credenciales, deberá crear y almacenar secretos en Azure KeyVault y recuperar los secretos de la instancia de Key Vault. Obtenga más información sobre crear y almacenar credenciales en un Key Vault. Y para establecer y recuperar un secreto desde Azure Key Vault.

  1. Vaya a Credenciales>Crear credenciales.

    Captura de pantalla para agregar credenciales en Azure Portal

    Captura de pantalla para crear nuevas credenciales en Azure Portal

  2. Escriba el Nombre para las nuevas credenciales del registro de origen.

  3. Seleccione una Source Authentication (Autenticación de origen). Actualmente la caché de artefacto admite Seleccionar de Key Vault e Introducir URI de secretos.

  4. Para la opción Seleccionar de Key Vault, obtenga más información sobre cómo crear credenciales mediante el almacén de claves.

  5. Seleccione Crear.

Pasos siguientes

  • Avance al siguiente artículo para recorrer la guía de solución de problemas de la caché del registro.