Share via


Cache d’artefacts - Vue d’ensemble

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 en différents niveaux de service : De base, Standard et Premium.

Cet article est la première partie d’une série de tutoriels qui en compte six. Ce tutoriel traite des sujets suivants :

  1. Cache d’artefacts
  2. Activer le cache d’artefacts – Portail Azure
  3. Activer le cache d’artefacts avec authentification – Portail Azure
  4. Activer le cache d’artefacts – Azure CLI
  5. Activer le cache d’artefacts avec authentification – Azure CLI
  6. Guide de résolution des problèmes liés au cache d’artefacts

Cache d’artefacts

Le cache d’artefacts vous permet de mettre en cache des images conteneur à partir de référentiels publics et privés.

L’implémentation du cache d’artefacts offre les avantages suivants :

Opérations d’extraction plus fiables : des extractions plus rapides d’images conteneur sont réalisables en mettant en cache les images conteneur dans ACR. Étant donné que Microsoft gère le réseau Azure, les opérations d’extraction sont plus rapides en fournissant la prise en charge des géoréplications et des zones de disponibilité aux clients.

Réseaux privés : les registres mis en cache sont disponibles sur des réseaux privés. Par conséquent, les utilisateurs peuvent configurer leur pare-feu pour répondre aux normes de conformité.

S’assurer que le contenu en amont est fourni : tous les registres, en particulier les registres publics comme Docker Hub et autres, ont des limites d’extraction anonymes afin de s’assurer qu’ils peuvent fournir des services à tout le monde. Le cache d’artefacts permet aux utilisateurs d’extraire des images de l’ACR local au lieu du registre en amont. Le cache d’artefacts garantit la distribution de contenu en amont et les utilisateurs ont l’avantage de pouvoir extraire les images conteneur à partir du cache sans que cela compte dans les limites d’extraction.

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 :

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

      2. Source : le nom du registre source.

      3. 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.

      4. 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

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

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

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

      4. 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’extrait pas automatiquement les nouvelles étiquettes d’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 actuellement en charge les registres en amont suivants :

Registres en amont Assistance technique Disponibilité
Docker Hub Prend en charge à la fois les tirages authentifiés et les tirages non authentifiés. Azure CLI, Portail Azure
Registre des artefacts Microsoft Prend uniquement en charge les tirages non authentifiés. Azure CLI, Portail Azure
ECR Public Prend uniquement en charge les tirages non authentifiés. Azure CLI, Portail Azure
GitHub Container Registry Prend en charge à la fois les tirages authentifiés et les tirages non authentifiés. Azure CLI, Portail Azure
Nvidia Prend en charge à la fois les tirages authentifiés et les tirages non authentifiés. Azure CLI
Quay Prend en charge à la fois les tirages authentifiés et les tirages non authentifiés. Azure CLI, Portail Azure
registry.k8s.io Prend en charge à la fois les tirages authentifiés et les tirages non authentifiés. Azure CLI
Google Container Registry Prend en charge à la fois les tirages authentifiés et les tirages 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 actuellement 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 chevaucher d’autres règles de cache avec 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 cache spécifie un chemin d’accès de référentiel fixe, elle est autorisée à chevaucher une règle de 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/*.

Étapes suivantes