Groupes de conteneurs dans Azure Container InstancesContainer groups in Azure Container Instances

La ressource de niveau supérieur dans Azure Container Instances est un groupe de conteneurs.The top-level resource in Azure Container Instances is the container group. Cet article décrit les groupes de conteneurs et les types de scénarios associés.This article describes what container groups are and the types of scenarios they enable.

Qu’est-ce qu’un groupe de conteneurs ?What is a container group?

Un groupe de conteneurs est une collection de conteneurs qui sont planifiés sur le même ordinateur hôte.A container group is a collection of containers that get scheduled on the same host machine. Les conteneurs d’un groupe de conteneurs partagent un cycle de vie, des ressources, un réseau local et les volumes de stockage.The containers in a container group share a lifecycle, resources, local network, and storage volumes. Il s’apparente conceptuellement à un pod dans Kubernetes.It's similar in concept to a pod in Kubernetes.

Le diagramme suivant montre un exemple de groupe de conteneurs incluant plusieurs conteneurs :The following diagram shows an example of a container group that includes multiple containers:

Diagramme de groupes de conteneurs

Le groupe de conteneurs donné en exemple :This example container group:

  • Est planifié sur un ordinateur hôte unique.Is scheduled on a single host machine.
  • Est affecté à une étiquette de nom DNS.Is assigned a DNS name label.
  • Expose une adresse IP publique unique, avec exposition d’un seul port.Exposes a single public IP address, with one exposed port.
  • Comprend deux conteneurs.Consists of two containers. Un conteneur écoute le port 80, l’autre le port 5000.One container listens on port 80, while the other listens on port 5000.
  • Inclut deux partages de fichiers Azure en tant que montages de volume, et chaque conteneur monte l’un des partages localement.Includes two Azure file shares as volume mounts, and each container mounts one of the shares locally.

Notes

Les groupes à plusieurs conteneurs ne prennent actuellement en charge que les conteneurs Linux.Multi-container groups currently support only Linux containers. Pour les conteneurs Windows, Azure Container Instances prend uniquement en charge le déploiement d’une instance de conteneur unique.For Windows containers, Azure Container Instances only supports deployment of a single container instance. 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.While we are working to bring all features to Windows containers, you can find current platform differences in the service Overview.

DéploiementDeployment

Voici deux méthodes courantes de déploiement d’un groupe à plusieurs conteneurs : utilisez un modèle Resource Manager ou un fichier YAML.Here are two common ways to deploy a multi-container group: use a Resource Manager template or a YAML file. 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.A Resource Manager template is recommended when you need to deploy additional Azure service resources (for example, an Azure Files share) when you deploy the container instances. 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.Due to the YAML format's more concise nature, a YAML file is recommended when your deployment includes only container instances. 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.For details on properties you can set, see the Resource Manager template reference or YAML reference documentation.

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.To preserve a container group's configuration, you can export the configuration to a YAML file by using the Azure CLI command az container export. L’exportation permet de stocker ces configurations de groupe de conteneurs dans la gestion de version pour la « configuration en tant que code ».Export allows you to store your container group configurations in version control for "configuration as code." Vous pouvez également utiliser le fichier exporté comme point de départ pour développer une nouvelle configuration dans YAML.Or, use the exported file as a starting point when developing a new configuration in YAML.

Allocation des ressourcesResource allocation

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.Azure Container Instances allocates resources such as CPUs, memory, and optionally GPUs (preview) to a multi-container group by adding the resource requests of the instances in the group. 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.Taking CPU resources as an example, if you create a container group with two container instances, each requesting 1 CPU, then the container group is allocated 2 CPUs.

Utilisation des ressources par les instances de conteneurResource usage by container instances

Chaque instance de conteneur dans un groupe se voit allouer les ressources spécifiées dans sa demande de ressource.Each container instance in a group is allocated the resources specified in its resource request. 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.However, the maximum resources used by a container instance in a group could be different if you configure its optional resource limit property. La limite des ressources d’une instance de conteneur doit être supérieure ou égale à la propriété obligatoire de demande de ressources.The resource limit of a container instance must be greater than or equal to the mandatory resource request property.

  • 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.If you don't specify a resource limit, the container instance's maximum resource usage is the same as its resource request.

  • 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.If you specify a limit for a container instance, the instance's maximum usage could be greater than the request, up to the limit you set. En conséquence, l’utilisation des ressources par d’autres instances de conteneur dans le groupe peut diminuer.Correspondingly, resource usage by other container instances in the group could decrease. 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.The maximum resource limit you can set for a container instance is the total resources allocated to the group.

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.For example, in a group with two container instances each requesting 1 CPU, one of your containers might run a workload that requires more CPUs to run than the other.

Dans ce scénario, vous pouvez définir une limite de ressources de 2 UC pour l’instance de conteneur.In this scenario, you could set a resource limit of 2 CPUs for the container instance. Cette configuration permet à l’instance de conteneur d’utiliser jusqu’à 2 UC complètes si elles sont disponibles.This configuration allows the container instance to use up to the full 2 CPUs if available.

Allocation minimale et maximaleMinimum and maximum allocation

  • Allouez un minimum d’1 UC et de 1 Go de mémoire à un groupe de conteneurs.Allocate a minimum of 1 CPU and 1 GB of memory to a container group. Il est possible d’approvisionner des instances de conteneur individuelles avec moins de 1 processeur virtuel et de 1 Go de mémoire.Individual container instances within a group can be provisioned with less than 1 CPU and 1 GB of memory.

  • 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.For the maximum resources in a container group, see the resource availability for Azure Container Instances in the deployment region.

Mise en réseauNetworking

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).Container groups can share an external-facing IP address, one or more ports on that IP address, and a DNS label with a fully qualified domain name (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.To enable external clients to reach a container within the group, you must expose the port on the IP address and from the container. Étant donné que les conteneurs au sein du groupe partagent un espace de noms de port, le mappage de port n’est pas pris en charge.Because containers within the group share a port namespace, port mapping isn't supported. L’adresse IP et le FQDN d’un groupe de conteneurs seront à nouveau disponibles au moment de la suppression du groupe de conteneurs.A container group's IP address and FQDN will be released when the container group is deleted.

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.Within a container group, container instances can reach each other via localhost on any port, even if those ports aren't exposed externally on the group's IP address or from the container.

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.Optionally deploy container groups into an Azure virtual network to allow containers to communicate securely with other resources in the virtual network.

StockageStorage

Vous pouvez spécifier des volumes externes à monter dans un groupe de conteneurs.You can specify external volumes to mount within a container group. Les volumes pris en charge sont les suivants :Supported volumes include:

Vous pouvez mapper ces volumes à des chemins spécifiques dans les conteneurs individuels d’un groupe.You can map those volumes into specific paths within the individual containers in a group.

Scénarios courantsCommon scenarios

Avec les groupes de plusieurs conteneurs, vous pouvez répartir une seule tâche fonctionnelle sur un petit nombre d’images conteneur.Multi-container groups are useful in cases where you want to divide a single functional task into a small number of container images. Ces images peuvent être fournies par différentes équipes et présenter des exigences spécifiques aux ressources.These images can then be delivered by different teams and have separate resource requirements.

Exemples d’utilisation :Example usage could include:

  • Un conteneur servant une application web et un conteneur extrayant le contenu le plus récent du contrôle de code source.A container serving a web application and a container pulling the latest content from source control.
  • Un conteneur d’applications et un conteneur de journalisation.An application container and a logging container. 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.The logging container collects the logs and metrics output by the main application and writes them to long-term storage.
  • Un conteneur d’applications et un conteneur d’analyse.An application container and a monitoring container. 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.The monitoring container periodically makes a request to the application to ensure that it's running and responding correctly, and raises an alert if it's not.
  • Un conteneur frontal et un conteneur principal.A front-end container and a back-end container. Le conteneur frontal peut servir d’application web, le conteneur principal exécutant un service pour récupérer des données.The front end might serve a web application, with the back end running a service to retrieve data.

Étapes suivantesNext steps

Découvrez comment déployer un groupe de plusieurs conteneurs avec un modèle Azure Resource Manager :Learn how to deploy a multi-container container group with an Azure Resource Manager template: