Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Configurez un pool de machines virtuelles gérées par Azure (pool d’agents) pour permettre l’exécution de vos tâches Azure Container Registry dans un environnement de calcul dédié. Après avoir configuré un ou plusieurs pools dans votre Registre, vous pouvez choisir un pool pour exécuter une tâche à la place de l’environnement de calcul par défaut du service.
Un pool d’agents fournit les fonctionnalités suivantes :
- Prise en charge des réseaux virtuels : affectez un pool d’agents à un réseau virtuel Azure, ce qui permet d’accéder aux ressources du réseau virtuel, comme un registre de conteneurs, un coffre de clés ou un stockage.
- Mise à l’échelle en fonction des besoins : augmentez le nombre d’instances dans un pool d’agents pour les tâches nécessitant beaucoup de ressources, ou mettez à l’échelle sur zéro. La facturation est basée sur l’allocation de pool. Pour plus d’informations, consultez les tarifs.
- Options flexibles : choisissez parmi différents niveaux de pool et mettez à l’échelle des options pour répondre aux besoins de la charge de travail de votre tâche.
- Gestion Azure : les pools de tâches sont corrigés et gérés par Azure, ce qui permet une allocation réservée sans avoir à gérer les machines virtuelles individuelles.
Cette fonctionnalité est disponible uniquement au niveau de service Premium de registre de conteneurs. Pour plus d’informations sur les niveaux de service et les limites de registre, consultez Références SKU Azure Container Registry.
Important
Cette fonctionnalité est actuellement en préversion et certaines limitations s’appliquent. Les préversions sont à votre disposition, à condition que vous acceptiez les conditions d’utilisation supplémentaires. Certains aspects de cette fonctionnalité sont susceptibles d’être modifiés avant la mise à disposition générale.
Limitations de la version préliminaire
Les pools d’agents de tâche prennent actuellement en charge les nœuds Linux. Les nœuds Windows ne sont actuellement pas pris en charge.
Les pools d’agents de tâche sont disponibles en préversion dans les régions suivantes : USA Ouest 2, USA Centre Sud, USA Est 2, USA Est, USA Centre, Europe Ouest, Europe Nord, Canada Centre, Asie Est, Suisse Nord, Jio Inde Ouest, Jio Inde Centre, USGov Arizona, USGov Texas et USGov Virginie.
Pour chaque registre, le quota total par défaut de processeurs virtuels (Core) est de 16 pour tous les pools d’agents standard et de 0 pour les pools d’agents isolés. Pour augmenter votre quota, ouvrez une demande de support.
Prérequis
- Pour utiliser les étapes Azure CLI décrites dans cet article, vous devez disposer d’Azure CLI version 2.3.1 ou ultérieure. Si vous devez installer ou mettre à niveau, voir Installer Azure CLI. Ou exécutez cela dans Azure Cloud Shell.
- Si vous ne disposez pas d’un registre de conteneurs, créez-en un (niveau Premium requis) dans une région de préversion.
Niveaux de pool
Les niveaux de pool d’agents fournissent les ressources suivantes par instance dans le pool.
| Niveau | Type | UC | Mémoire (Go) |
|---|---|---|---|
| S1 | standard | 2 | 3 |
| S2 | standard | 4 | 8 |
| S3 | standard | 8 | 16 |
| I6 | isolés | 64 | 216 |
Créer et gérer un pool d’agents de tâche
Définir le registre par défaut (facultatif)
Pour simplifier les commandes Azure CLI qui suivent, définissez le Registre par défaut en exécutant la az config commande :
az config set defaults.acr=<registryName>
Les exemples suivants supposent que vous avez déjà défini le Registre par défaut. Si ce n’est pas le cas, transmettez un paramètre --registry <registryName> dans chaque commande az acr.
Créer un pool d’agents
Créez un pool d’agents à l’aide de la az acr agentpool create commande. L’exemple suivant crée un pool de niveau S2 (4 UC/instance). Par défaut, le pool contient une instance.
az acr agentpool create \
--registry myregistry \
--name myagentpool \
--tier S2
Remarque
La création d’un pool d’agents et d’autres opérations de gestion de pool prend quelques minutes.
Pool de mise à l’échelle
Ajustez la taille du pool en l'augmentant ou en la réduisant avec la commande az acr agentpool update. L’exemple suivant adapte le pool à deux instances.
az acr agentpool update \
--registry myregistry \
--name myagentpool \
--count 2
Créer un pool dans un réseau virtuel
Ajouter des règles de pare-feu
Les pools d’agents de tâche requièrent un accès aux services Azure suivants. Les règles de pare-feu suivantes doivent être ajoutées à tous les groupes de sécurité réseau existants ou itinéraires définis par l’utilisateur.
| Sens | Protocole | Origine | Port source | Destination | Port de destination | Utilisé(e) | Notes |
|---|---|---|---|---|---|---|---|
| Règle de trafic sortant | TCP | VirtualNetwork | Quelconque | AzureKeyVault | 443 | Par défaut | |
| Règle de trafic sortant | TCP | VirtualNetwork | Quelconque | Stockage | 443 | Par défaut | |
| Règle de trafic sortant | TCP | VirtualNetwork | Quelconque | EventHub | 443 | Par défaut | |
| Règle de trafic sortant | TCP | VirtualNetwork | Quelconque | AzureActiveDirectory | 443 | Par défaut | |
| Règle de trafic sortant | TCP | VirtualNetwork | Quelconque | AzureMonitor | 443,12000 | Par défaut | Le port 12000 est un port unique utilisé pour les diagnostics |
Remarque
Si vos tâches nécessitent d’autres ressources à partir de l’Internet public, ajoutez les règles correspondantes. Par exemple, des règles sont nécessaires pour exécuter une tâche de génération Docker qui extrait les images de base à partir de Docker Hub ou qui restaure un package NuGet.
Les clients qui basent leurs déploiements avec MCR peuvent consulter les règles de pare-feu MCR/MAR.
Configuration réseau avancée
Si les règles standard du pare-feu/du groupe de sécurité réseau (NSG) sont considérées comme trop permissives et qu’un contrôle renforcé est nécessaire pour les connexions sortantes, il convient d’envisager l’approche suivante :
- Activez les points de terminaison de service sur le sous-réseau du pool d’agents. Cela permet au pool d’agents d’accéder à ses dépendances de service tout en maintenant un réseau sécurisé.
- Il est important de noter que les règles de pare-feu/groupe de sécurité réseau (NSG) sortantes sont toujours nécessaires. Ces règles facilitent la capacité du réseau virtuel à basculer l’adresse IP source du public au privé, qui est une autre étape au-delà de l’activation des points de terminaison de service.
Pour plus d’informations sur les points de terminaison de service, consultez Sécuriser les services Azure sur les réseaux virtuels.
Au minimum, les points de terminaison de service suivants sont requis :
- Microsoft.AzureActiveDirectory
- Microsoft.ContainerRegistry (uniquement si le Registre n’utilise pas de liaison privée)
- Microsoft.EventHub
- Microsoft.KeyVault
- Microsoft.Storage (ou les régions de stockage correspondantes prenant en compte la géoréplication)
Remarque
Actuellement, aucun point de terminaison de service n’existe pour Azure Monitor. Si le trafic sortant pour Azure Monitor n’est pas configuré, le pool d’agents ne peut pas émettre de journaux de diagnostic, mais peut sembler fonctionner normalement. Dans ce cas, ACR n’est pas en mesure de résoudre entièrement les problèmes rencontrés. Il est donc important de tenir compte de cela lors de la planification de la configuration du réseau.
Gardez également à l’esprit que les tâches ACR ont des images précacheées pour certains des cas d’usage les plus courants. Les tâches mettent en cache uniquement une seule version à la fois. Cela signifie que si la référence d'image complète avec balise est utilisée, l'agent de build tente de récupérer l'image. Par exemple, un cas d’usage courant est cmd: mcr.microsoft.com/acr/acr-cli:<tag>. Toutefois, la version précacheée est fréquemment mise à jour, ce qui signifie que la version réelle sur l’ordinateur sera probablement plus élevée. Dans ce cas, la configuration réseau doit configurer un itinéraire pour le trafic sortant vers l’hôte de Registre cible, qui dans l’exemple précédent serait mcr.microsoft.com. Les mêmes règles s’appliquent à tout autre registre public externe (docker.io, quay.io, ghcr.io, etc.).
Utilisation d’un système DNS personnalisé
Si le sous-réseau a un serveur DNS personnalisé configuré, cette configuration est héritée par l’agent de build pendant l’exécution.
Important
La plage IP utilisée par le point de terminaison DNS personnalisé ne doit pas entrer en conflit avec la plage par défaut de 172.17.0.0/16Docker .
Créer un pool dans un réseau virtuel
L’exemple suivant crée un pool d’agents dans le mysubnet sous-réseau du réseau myvnet:
# Get the subnet ID
subnetId=$(az network vnet subnet show \
--resource-group myresourcegroup \
--vnet-name myvnet \
--name mysubnetname \
--query id --output tsv)
az acr agentpool create \
--registry myregistry \
--name myagentpool \
--tier S2 \
--subnet-id $subnetId
Exécuter la tâche sur le pool d’agents
Les exemples suivants montrent comment spécifier un pool d’agents lors de la mise en file d’attente d’une tâche.
Remarque
Pour utiliser un pool d’agents dans une tâche ACR, vérifiez que le pool contient au moins une instance.
Tâche rapide
Mettez en file d’attente une tâche rapide sur le pool d’agents à l’aide de la commande az acr build et passez le paramètre --agent-pool.
az acr build \
--registry myregistry \
--agent-pool myagentpool \
--image myimage:mytag \
--file Dockerfile \
https://github.com/Azure-Samples/acr-build-helloworld-node.git#main
Tâche déclenchée automatiquement
Par exemple, créez une tâche planifiée sur le pool d’agents avec az acr task create, en passant le --agent-pool paramètre.
az acr task create \
--registry myregistry \
--name mytask \
--agent-pool myagentpool \
--image myimage:mytag \
--schedule "0 21 * * *" \
--file Dockerfile \
--context https://github.com/Azure-Samples/acr-build-helloworld-node.git#main \
--commit-trigger-enabled false
Pour vérifier la configuration de la tâche, exécutez az acr task run:
az acr task run \
--registry myregistry \
--name mytask
État du pool de requêtes
Pour connaître le nombre d’exécutions actuellement planifiées sur le pool d’agents, exécutez az acr agentpool show.
az acr agentpool show \
--registry myregistry \
--name myagentpool \
--queue-count
Étapes suivantes
Pour obtenir plus d’exemples de builds et de maintenance d’image de conteneur dans le cloud, consultez la série de tutoriels sur ACR Tasks.