Groupes de conteneurs dans Azure Container Instances

La ressource de niveau supérieur dans Azure Container Instances est un groupe de conteneurs. Cet article décrit les groupes de conteneurs et les types de scénarios associés.

Qu’est-ce qu’un groupe de conteneurs ?

Un groupe de conteneurs est une collection de conteneurs qui sont planifiés sur le même ordinateur hôte. Les conteneurs d’un groupe de conteneurs partagent un cycle de vie, des ressources, un réseau local et les volumes de stockage. Il s’apparente conceptuellement à un pod dans Kubernetes.

Le diagramme suivant montre un exemple de groupe de conteneurs incluant plusieurs conteneurs :

Container groups diagram

Le groupe de conteneurs donné en exemple :

  • Est planifié sur un ordinateur hôte unique.
  • Est affecté à une étiquette de nom DNS.
  • Expose une adresse IP publique unique, avec exposition d’un seul port.
  • Comprend deux conteneurs. Un conteneur écoute le port 80, l’autre le port 5000.
  • Inclut deux partages de fichiers Azure en tant que montages de volume, et chaque conteneur monte l’un des partages localement.

Notes

Les groupes à plusieurs conteneurs ne prennent actuellement en charge que les conteneurs Linux. Pour les conteneurs Windows, Azure Container Instances prend uniquement en charge le déploiement d’une instance de conteneur unique. Nous travaillons actuellement à proposer toutes ces fonctionnalités dans des conteneurs Windows. En attendant, nous vous invitons à découvrir les différences actuelles de la plateforme dans le service Vue d’ensemble.

Déploiement

Voici deux méthodes courantes de déploiement d’un groupe à plusieurs conteneurs : utilisez un modèle Resource Manager ou un fichier YAML. Un modèle Resource Manager est recommandé si vous avez besoin de déployer des ressources de service Azure supplémentaires (par exemple, un partage Azure Files) lorsque vous déployez les instances de conteneur. En raison de la nature plus concise du format YAML, un fichier YAML est recommandé lorsque le déploiement comprend uniquement les instances de conteneur. Pour plus d'informations sur les propriétés que vous pouvez définir, consultez la documentation Informations de référence sur les modèles Resource Manager ou Informations de référence sur YAML.

Pour conserver la configuration d’un groupe de conteneurs, vous pouvez exporter la configuration dans un fichier YAML avec la commande Azure CLI az container export. L’exportation vous permet de stocker les configurations de votre groupe de conteneurs dans le contrôle de version pour la « configuration en tant que code ». Ou utilisez le fichier exporté comme point de départ lors du développement d’une nouvelle configuration dans YAML.

Allocation des ressources

Azure Container Instances alloue des ressources comme l’UC, la mémoire et éventuellement le GPU (préversion) à un groupe multi-conteneurs en ajoutant les demandes de ressources des instances du groupe. Par exemple, pour les ressources d’UC, si vous créez un groupe de conteneurs avec deux instances de conteneur, chacune demandant 1 UC, le groupe de conteneurs se voit allouer 2 UC.

Utilisation des ressources par les instances de conteneur

Chaque instance de conteneur dans un groupe se voit allouer les ressources spécifiées dans sa demande de ressource. Toutefois, le nombre maximal de ressources utilisées par une instance de conteneur dans un groupe peut être différent si vous configurez sa propriété facultative de limite des ressources. La limite des ressources d’une instance de conteneur doit être supérieure ou égale à la propriété obligatoire de demande de ressources.

  • Si vous ne spécifiez pas de limite de ressources, l’utilisation maximale des ressources de l’instance de conteneur est identique à celle de sa demande de ressources.

  • Si vous spécifiez une limite pour une instance de conteneur, l’utilisation maximale de l’instance peut être supérieure à la demande, jusqu’à la limite que vous définissez. En conséquence, l’utilisation des ressources par d’autres instances de conteneur dans le groupe peut diminuer. La limite maximale de ressources que vous pouvez définir pour une instance de conteneur est le nombre total de ressources allouées au groupe.

Par exemple, dans un groupe ayant deux instances de conteneur qui demandent chacune 1 UC, un de vos conteneurs peut exécuter une charge de travail qui nécessite davantage d’UC que l’autre.

Dans ce scénario, vous pouvez définir une limite de ressources allant jusqu’à deux processeurs pour l’instance de conteneur. Cette configuration permet à l’instance de conteneur d’utiliser jusqu’à deux processeurs s’ils sont disponibles.

Notes

Une petite quantité des ressources d’un groupe de conteneurs est utilisée par l’infrastructure sous-jacente du service. Vos conteneurs pourront accéder à la plupart des ressources allouées au groupe, mais pas à toutes. Pour cette raison, planifiez une petite mémoire tampon de ressources en cas de demande de ressources pour les conteneurs du groupe.

Allocation minimale et maximale

  • Allouez un minimum d’1 UC et de 1 Go de mémoire à un groupe de conteneurs. Il est possible d’approvisionner des instances de conteneur individuelles avec moins de 1 processeur virtuel et de 1 Go de mémoire.

  • Pour les ressources maximales d’un groupe de conteneurs, consultez la disponibilité des ressources pour Azure Container Instances dans la région de déploiement.

Mise en réseau

Les groupes de conteneurs peuvent partager une adresse IP externe, un ou plusieurs ports sur cette adresse IP et une étiquette DNS avec un nom de domaine complet (FQDN). Pour que les clients externes puissent atteindre un conteneur au sein du groupe, vous devez exposer le port sur l’adresse IP et à partir du conteneur. L’adresse IP et le nom de domaine complet d’un groupe de conteneurs sont à nouveau disponibles quand le groupe de conteneurs est supprimé.

Dans un groupe de conteneurs, les instances de conteneur peuvent s’atteindre les unes les autres via localhost sur n’importe quel port, même si ce port n’est pas exposé en externe sur l’adresse IP du groupe ou à partir du conteneur.

Déployez éventuellement des groupes de conteneurs dans un réseau virtuel Azure pour permettre à vos conteneurs de communiquer en toute sécurité avec d’autres ressources dans le réseau virtuel.

Stockage

Vous pouvez spécifier des volumes externes à monter dans un groupe de conteneurs. Les volumes pris en charge sont les suivants :

Vous pouvez mapper ces volumes à des chemins spécifiques dans les conteneurs individuels d’un groupe.

Scénarios courants

Avec les groupes de plusieurs conteneurs, vous pouvez répartir une seule tâche fonctionnelle sur un petit nombre d’images conteneur. Ces images peuvent être fournies par différentes équipes et présenter des exigences spécifiques aux ressources.

Exemples d’utilisation :

  • Un conteneur servant une application web et un conteneur extrayant le contenu le plus récent du contrôle de code source.
  • Un conteneur d’applications et un conteneur de journalisation. Le conteneur de journalisation collecte les journaux d’activité et les métriques générés par l’application principale, puis les écrit dans le stockage à long terme.
  • Un conteneur d’applications et un conteneur d’analyse. Le conteneur de surveillance émet régulièrement une demande à destination de l’application pour vérifier qu’elle s’exécute et répond correctement, et déclenche une alerte si ce n’est pas le cas.
  • Un conteneur frontal et un conteneur principal. Le conteneur frontal peut servir d’application web, le conteneur principal exécutant un service pour récupérer des données.

Étapes suivantes

Découvrez comment déployer un groupe de plusieurs conteneurs avec un modèle Azure Resource Manager :