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 :
- Cache d’artefacts
- Activer le cache d’artefacts – Portail Azure
- Activer le cache d’artefacts avec authentification – Portail Azure
- Activer le cache d’artefacts – Azure CLI
- Activer le cache d’artefacts avec authentification – Azure CLI
- 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 :
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’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
- Pour activer le cache d’artefacts en utilisant le Portail Azure, passez au prochain article intitulé Activer le cache d’artefacts.