Cache d’artefacts dans Azure Container Registry

La fonctionnalité de cache d’artefacts permet aux utilisateurs de mettre en cache des images conteneur dans un registre de conteneurs privé. Le cache d’artefacts est disponible dans les niveaux de service Essentiel, Standard et Premium.

Le cache d’artefacts améliore la gestion des images conteneur en fournissant une solution de mise en cache pour les référentiels publics et privés.

Le cache d’artefacts offre des opérations de tirage (pull) plus fiables via Azure Container Registry (ACR), à l’aide de fonctionnalités telles que la géoréplication et la prise en charge des zones de disponibilité à des fins d’optimisation de la disponibilité et d’accélération des tirages d’images.

Le cache d’artefacts permet aux registres mis en cache d’être accessibles sur des réseaux privés pour que les utilisateurs puissent s’aligner sur les configurations de pare-feu et les normes de conformité en toute transparence.

Le cache d’artefacts résout le problème des limites de tirage imposées par les registres publics. Nous recommandons aux utilisateurs d’authentifier leurs règles de cache avec les informations d’identification de la source en amont. Puis de tirer les images du registre de conteneurs Azure local pour atténuer les limites de débit.

Terminologie

  • Règle de cache : une règle de cache est une règle que vous pouvez créer pour extraire des artefacts d’un référentiel pris en charge dans votre cache.

    • Une règle de cache contient quatre parties :

      • Nom de la règle : le nom de votre règle de cache. Par exemple : Hello-World-Cache.

      • Source : le nom du registre source.

      • Chemin du référentiel : le chemin source du référentiel pour rechercher et récupérer les artefacts que vous souhaitez mettre en cache. Par exemple : docker.io/library/hello-world.

      • Nouvel espace de noms du référentiel ACR : le nom du nouveau chemin d’accès au référentiel pour stocker les artefacts. Par exemple : hello-world. Le référentiel ne peut pas déjà exister à l’intérieur de l’instance ACR.

  • Informations d'identification

    • Les informations d’identification sont un ensemble composé d’un nom d’utilisateur et d’un mot de passe pour le registre source. Vous avez besoin d’informations d’identification pour vous authentifier auprès d’un référentiel public ou privé. Les informations d’identification contiennent quatre parties

      • Informations d’identification : le nom de vos informations d’identification.

      • Serveur de connexion au registre source : le serveur de connexion de votre registre source.

      • Authentification source : les emplacements du coffre de clés pour stocker les informations d’identification.

      • Secrets du nom d’utilisateur et du mot de passe : les secrets contenant le nom d’utilisateur et le mot de passe.

Limites

  • La mise en cache se produit uniquement une fois qu’au moins un tirage (pull) d’une image est terminé dans l’image conteneur disponible. Pour chaque nouvelle image disponible, un nouveau tirage de l’image doit être terminé. Le cache d’artefacts n’effectue pas automatiquement le tirage (pull) des nouvelles étiquettes des images quand une nouvelle étiquette est disponible. Cela figure sur la feuille de route, mais n’est pas pris en charge dans cette version.

  • Le cache d’artefacts prend uniquement en charge 1 000 règles de mise en cache.

Prise en charge en amont

Le cache d’artefacts prend en charge les registres en amont suivants :

Avertissement

Les clients doivent générer un ensemble d’informations d’identification pour obtenir du contenu à partir du hub Docker.

Registres en amont Assistance technique Disponibilité
Docker Hub Prend uniquement en charge les tirages authentifiés. Azure CLI, Portail Azure
Registre des artefacts Microsoft Prend uniquement en charge les tirages non authentifiés. Azure CLI, Portail Azure
Galerie publique AWS Elastic Container Registry (ECR) Prend uniquement en charge les tirages non authentifiés. Azure CLI, Portail Azure
GitHub Container Registry Prend en charge les tirages authentifiés et non authentifiés. Azure CLI, Portail Azure
Quay Prend en charge les tirages authentifiés et non authentifiés. Azure CLI, Portail Azure
registry.k8s.io Prend en charge les tirages authentifiés et non authentifiés. Azure CLI
Google Container Registry Prend en charge les tirages authentifiés et non authentifiés. Azure CLI

Caractères génériques

Les caractères génériques utilisent des astérisques (*) pour établir une correspondance avec plusieurs chemins d’accès dans le registre d’images conteneur. Le cache d’artefacts prend en charge les caractères génériques suivants :

Remarque

Les règles de cache effectuent le mappage du référentiel cible => référentiel source.

Caractère générique au niveau du registre

Le caractère générique au niveau du registre vous permet de mettre en cache tous les référentiels d’un registre en amont.

Règle de cache Mappage Exemple
contoso.azurecr.io/* => mcr.microsoft.com/* Mappage de toutes les images sous ACR à MCR. contoso.azurecr.io/myapp/image1 => mcr.microsoft.com/myapp/image1
contoso.azurecr.io/myapp/image2 => mcr.microsoft.com/myapp/image2

Caractère générique au niveau du référentiel

Le caractère générique au niveau du référentiel vous permet de mettre en cache tous les référentiels d’un mappage de registre en amont au préfixe du référentiel.

Règle de cache Mappage Exemple
contoso.azurecr.io/dotnet/* => mcr.microsoft.com/dotnet/* Mappage de référentiels spécifiques sous ACR aux référentiels correspondants dans 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/*
Mappage de référentiels spécifiques sous ACR aux référentiels de différents registres en amont. contoso.azurecr.io/library/dotnet/app1 => mcr.microsoft.com/dotnet/app1
contoso.azurecr.io/library/python/app3 => docker.io/library/python/app3

Limitations des règles de cache basées sur des caractères génériques

Les règles de cache avec des caractères génériques utilisent des astérisques (*) pour établir une correspondance avec plusieurs chemins d’accès dans le registre d’images conteneur. Ces règles ne peuvent pas se chevaucher avec d’autres règles de mise en cache basées sur des caractères génériques. En d’autres termes, si vous disposez d’une règle de cache avec des caractères génériques pour un chemin d’accès de registre spécifique, vous ne pouvez pas ajouter une autre règle avec des caractères génériques qui la chevauche.

Voici quelques exemples de règles qui se chevauchent :

Exemple 1 :

Règle de cache existante : contoso.azurecr.io/* => mcr.microsoft.com/*
Nouveau cache ajouté : contoso.azurecr.io/library/* => docker.io/library/*

L’ajout de la nouvelle règle de cache est bloqué, car le chemin d’accès du référentiel cible contoso.azurecr.io/library/* chevauche la règle avec des caractères génériques existante contoso.azurecr.io/*.

Exemple 2 :

Règle de cache existante : contoso.azurecr.io/library/* =>mcr.microsoft.com/library/*
Nouveau cache ajouté : contoso.azurecr.io/library/dotnet/* =>docker.io/library/dotnet/*

L’ajout de la nouvelle règle de cache est bloqué, car le chemin d’accès du référentiel cible contoso.azurecr.io/library/dotnet/* chevauche la règle avec des caractères génériques existante contoso.azurecr.io/library/*.

Limitations pour les règles de cache statiques/fixes

Les règles de cache statiques ou fixes sont plus spécifiques et n’utilisent pas de caractères génériques. Elles peuvent chevaucher des règles de cache basées sur des caractères génériques. Si une règle de mise en cache spécifie un chemin d’accès de référentiel fixe, elle autorise le chevauchement avec une règle de mise en cache basée sur des caractères génériques.

Exemple 1 :

Règle de cache existante : contoso.azurecr.io/* =>mcr.microsoft.com/*
Nouveau cache ajouté : contoso.azurecr.io/library/dotnet =>docker.io/library/dotnet

L’ajout de la nouvelle règle de cache est autorisé, car contoso.azurecr.io/library/dotnet est un chemin d’accès statique et peut chevaucher la règle avec des caractères génériques contoso.azurecr.io/*.

Activer le cache d’artefacts - Azure CLI

Vous pouvez activer le cache d’artefacts dans votre instance d’Azure Container Registry avec ou sans authentification à l’aide d’Azure CLI en suivant les étapes ci-dessous.

Prérequis

Configurer et créer une règle de mise en cache sans les informations d’identification.

  1. Exécutez la commande az acr Cache create pour créer une règle de mise en cache.

    • Par exemple, pour créer une règle de cache sans les informations d’identification pour un Azure Container Registry MyRegistry donné.
    az acr Cache create -r MyRegistry -n MyRule -s docker.io/library/ubuntu -t ubuntu-
    
  2. Exécutez la commande az acr Cache show pour afficher une règle de mise en cache.

    • Par exemple, pour afficher une règle de mise en cache pour un Azure Container Registry donné MyRegistry.
     az acr Cache show -r MyRegistry -n MyRule
    

Créer les informations d’identification

Avant de configurer les informations d’identification, vous devez créer et stocker des secrets dans Azure Key Vault et récupérer les secrets du coffre de clés. En savoir plus sur la création et le stockage des informations d’identification dans une instance Key Vault. Et pour définir et récupérer un secret à partir de Key Vault..

  1. Exécutez la commande az acr credential set create pour créer les informations d’identification.

    • Par exemple, pour créer les informations d’identification pour un registre de conteneurs Azure MyRegistry donné :
    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. Exécutez az acr credential set update pour mettre à jour l’ID secret KV du nom d’utilisateur ou du mot de passe sur un jeu d’informations d’identification.

    • Par exemple, pour mettre à jour l’ID secret KV du nom d’utilisateur ou du mot de passe sur les informations d’identification d’un registre de conteneurs Azure MyRegistry donné.
    az acr credential-set update -r MyRegistry -n MyDockerHubCredSet -p https://MyKeyvault.vault.azure.net/secrets/newsecretname
    
  3. Exécutez az acr credential-set show pour afficher les informations d’identification.

    • Par exemple, pour afficher un jeu d’informations d’identification dans un Azure Container Registry MyRegistry donné.
    az acr credential-set show -r MyRegistry -n MyDockerHubCredSet
    

Configurer et créer une règle de mise en cache avec les informations d’identification

  1. Exécutez la commande az acr cache create pour créer une règle de mise en cache.

    • Par exemple, pour créer une règle de cache avec les informations d’identification pour un registre de conteneurs Azure MyRegistry donné :
    az acr cache create -r MyRegistry -n MyRule -s docker.io/library/ubuntu -t ubuntu -c MyDockerHubCredSet
    
  2. Exécutez la commande az acr cache update pour mettre à jour les informations d’identification sur une règle de cache.

    • Par exemple, pour mettre à jour les informations d’identification sur une règle de cache pour un registre de conteneurs Azure MyRegistry donné :
    az acr cache update -r MyRegistry -n MyRule -c NewCredSet
    
    • Par exemple, pour supprimer les informations d’identification d’une règle de cache existante pour un registre de conteneurs Azure MyRegistry donné :
    az acr cache update -r MyRegistry -n MyRule --remove-cred-set
    
  3. Exécutez la commande az acr cache show pour afficher une règle de mise en cache.

    • Par exemple, pour afficher une règle de mise en cache pour un Azure Container Registry donné MyRegistry.
     az acr cache show -r MyRegistry -n MyRule
    

Attribuez des autorisations à Key Vault à l'aide de politiques d'accès (héritées)

  1. Obtenez l’ID principal de l’identité système utilisée pour accéder à Key Vault.

    PRINCIPAL_ID=$(az acr credential-set show 
                    -n MyDockerHubCredSet \ 
                    -r MyRegistry  \
                    --query 'identity.principalId' \ 
                    -o tsv) 
    
  2. Exécutez la commande az keyvault set-policy pour attribuer l’accès à Key Vault, avant d’extraire l’image.

    • Par exemple, pour autoriser les informations d’identification à accéder au secret du coffre de clés :
    az keyvault set-policy --name MyKeyVault \
    --object-id $PRINCIPAL_ID \
    --secret-permissions get
    

Extraire votre image

  1. Extrayez l’image de votre cache à l’aide de la commande Docker en utilisant le nom du serveur de connexion au Registre, le nom du référentiel et l’étiquette souhaitée.

    • Par exemple, pour extraire l’image du référentiel hello-world avec l’étiquette latest souhaitée pour un serveur myregistry.azurecr.iode connexion au Registre donné.
     docker pull myregistry.azurecr.io/hello-world:latest
    

Nettoyer les ressources

  1. Exécutez la commande az acr cache list pour répertorier les règles de mise en cache dans Azure Container Registry.

    • Par exemple, pour répertorier les règles de mise en cache pour un Azure Container Registry donné MyRegistry.
     az acr cache list -r MyRegistry
    
  2. Exécutez la commande az acr cache delete pour supprimer une règle de mise en cache.

    • Par exemple, pour supprimer une règle de mise en cache pour un Azure Container Registry donné MyRegistry.
    az acr cache delete -r MyRegistry -n MyRule
    
  3. Exécutez az acr credential set list pour lister les informations d’identification dans un registre de conteneurs Azure.

    • Par exemple, pour lister les informations d’identification pour un registre de conteneurs Azure MyRegistry donné :
    az acr credential-set list -r MyRegistry
    
  4. Exécutez az acr credential-set delete pour supprimer les informations d’identification.

    • Par exemple, pour supprimer les informations d’identification pour un registre de conteneurs Azure MyRegistry donné :
    az acr credential-set delete -r MyRegistry -n MyDockerHubCredSet
    

Activer le cache d’artefacts - Portail Azure

Vous pouvez activer le cache d’artefacts dans votre instance d’Azure Container Registry avec ou sans authentification à l’aide du portail Azure en suivant les étapes ci-dessous.

Prérequis

Configurer le cache d’artefacts sans informations d’identification

Suivez les étapes pour créer une règle de cache dans le portail Azure.

  1. Accédez à votre registre de conteneurs Azure.

  2. Dans le menu latéral, sous Services, sélectionnez Cache.

    Capture d’écran du cache de Registry dans le portail Azure.

  3. Sélectionnez Créer une règle.

    Capture d’écran de la création de règle dans le portail Azure.

  4. Une fenêtre Nouvelle règle de cache s’affiche.

    Capture d’écran de la nouvelle règle de mise en cache dans le portail Azure.

  5. Entrez le Nom de la règle.

  6. Sélectionnez Registre Source dans le menu déroulant.

  7. Entrez le chemin du référentiel des artefacts que vous souhaitez mettre en cache.

  8. Vous pouvez ignorer l’authentification si vous n’accédez pas à un référentiel privé ou n’effectuez pas d’extraction authentifiée.

  9. Sous Destination, entrez le nom de l’Espace de noms du nouveau référentiel ACR pour stocker les artefacts mis en cache.

    Capture d’écran de l’enregistrement de la règle de mise en cache dans le portail Azure.

  10. Sélectionnez Enregistrer.

  11. Extrayez l’image de votre cache à l’aide de la commande Docker en utilisant le nom du serveur de connexion au Registre, le nom du référentiel et l’étiquette souhaitée.

    • Par exemple, pour extraire l’image du référentiel hello-world avec l’étiquette latest souhaitée pour un serveur myregistry.azurecr.iode connexion au Registre donné.
     docker pull myregistry.azurecr.io/hello-world:latest
    

Configurer le cache d’artefacts avec authentification

Suivez les étapes pour créer une règle de cache dans le portail Azure.

  1. Accédez à votre registre de conteneurs Azure.

  2. Dans le menu latéral, sous Services, sélectionnez Cache.

    Capture d’écran du cache de Registry dans le portail Azure.

  3. Sélectionnez Créer une règle.

    Capture d’écran de la création de règle dans le portail Azure.

  4. Une fenêtre Nouvelle règle de cache s’affiche.

    Capture d’écran de la nouvelle règle de mise en cache avec authentification dans le portail Azure.

  5. Entrez le Nom de la règle.

  6. Sélectionnez Registre Source dans le menu déroulant.

  7. Entrez le chemin du référentiel des artefacts que vous souhaitez mettre en cache.

  8. Pour ajouter une authentification au référentiel, cochez la case Authentification.

  9. Choisissez Créer de nouvelles informations d’identification pour créer un nouveau jeu d’informations d’identification afin de stocker le nom d’utilisateur et le mot de passe de votre registre source. Découvrez comment créer des informations d’identification.

  10. Si vous avez des informations d’identification prêtes, sélectionnez les informations d’identification dans le menu déroulant.

  11. Sous Destination, entrez le nom de l’Espace de noms du nouveau référentiel ACR pour stocker les artefacts mis en cache.

    Capture d’écran de l’enregistrement de la règle de mise en cache dans le portail Azure.

  12. Sélectionnez Enregistrer.

  13. Extrayez l’image de votre cache à l’aide de la commande Docker en utilisant le nom du serveur de connexion au Registre, le nom du référentiel et l’étiquette souhaitée.

    • Par exemple, pour extraire l’image du référentiel hello-world avec l’étiquette latest souhaitée pour un serveur myregistry.azurecr.iode connexion au Registre donné.
     docker pull myregistry.azurecr.io/hello-world:latest
    

Créer de nouvelles informations d’identification

Avant de configurer les informations d’identification, vous exigez la création et le stockage des secrets dans Azure Key Vault et la récupération des secrets du coffre de clés. En savoir plus sur la création et le stockage des informations d’identification dans une instance Key Vault. Et pour définir et récupérer un secret à partir de Key Vault..

  1. Accédez à Informations d’identification>Créer des informations d’identification.

    Capture d’écran de l’ajout d’informations d’identification dans le portail Azure.

    Capture d’écran de la création d’informations d’identification dans le portail Azure.

  2. Entrez un Nom pour les nouvelles informations d’identification de votre registre source.

  3. Sélectionnez une Authentification source. Le cache d’artefacts prend en charge l’option Sélectionner dans Key Vault et Entrer les URI de secret.

  4. Pour l’option Sélectionner dans le coffre de clés, explorez plus en détail la création d’informations d’identification avec un coffre de clés.

  5. Sélectionnez Créer.

Étapes suivantes

  • Passez à l’article suivant pour parcourir le guide de résolution des problèmes du cache du Registre.