Explorer Azure Container Instances

Effectué

Azure Container Instances (ACI) est une excellente solution pour les scénarios qui peuvent fonctionner dans des conteneurs isolés, y compris les applications basiques, automatiser des tâches et créer des travaux. Voici quelques-uns des avantages :

  • Démarrage rapide : ACI peut démarrer des conteneurs dans Azure en quelques secondes, sans avoir à approvisionner et à gérer de machine virtuelle (VM)
  • Accès au conteneur : ACI permet d’exposer vos groupes de conteneurs directement sur Internet avec une adresse IP et un nom de domaine complet (FQDN)
  • Sécurité au niveau de l’hyperviseur : isolez complètement votre application comme ce serait le cas dans une machine virtuelle
  • Données client : le service ACI stocke les données client minimales requises pour s’assurer que vos groupes de conteneurs s’exécutent comme prévu
  • Tailles personnalisées : ACI permet une utilisation optimale en autorisant les spécifications exactes des cœurs d’UC et de la mémoire
  • Stockage persistant : montez des partages Azure Files directement dans un conteneur pour récupérer et conserver l’état
  • Linux et Windows : programmez des conteneurs Windows et Linux avec la même API.

Pour les scénarios où vous devez disposer d’orchestration de conteneur complète (détection de service dans plusieurs conteneurs, mise à l’échelle automatique et mises à niveau d’application coordonnées), nous vous recommandons le service Azure Kubernetes Service (AKS).

Groupes de conteneur

La ressource de niveau supérieur dans Azure Container Instances est 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. C’est un concept similaire à celui d’un pod dans Kubernetes.

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

Exemple de groupe de conteneurs avec deux conteneurs, l’un écoutant sur le port 80 et l’autre écoutant sur le port 5000.

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

Déploiement

Il existe deux façons courantes de déployer 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.

Allocation des ressources

Azure Container Instances alloue des ressources telles que UC, mémoire et éventuellement GPU (préversion) à un groupe de conteneurs en ajoutant les demandes de ressources des instances du groupe. En utilisant les ressources processeur comme exemple, si vous créez un groupe de conteneurs avec deux instances, chacune demandant un processeur, alors le groupe de conteneurs se voit allouer deux processeurs.

Mise en réseau

Les groupes du conteneur partagent une adresse IP et un espace de noms de port sur cette adresse IP. 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. É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. Les conteneurs au sein d’un groupe peuvent s’atteindre les uns les autres via localhost sur les ports qu’ils ont exposés, même si ces ports ne sont pas exposés en externe sur l’adresse IP du groupe.

Stockage

Vous pouvez spécifier des volumes externes à monter dans un groupe de conteneurs. Vous pouvez mapper ces volumes à des chemins spécifiques dans les conteneurs individuels d’un groupe. Les volumes pris en charge sont les suivants :

  • Partage de fichiers Azure
  • Secret
  • Répertoire vide
  • Référentiel git cloné

Scénarios courants

Les groupes de conteneurs multiples sont pratiques dans les cas où vous voulez diviser une même tâche fonctionnelle en plusieurs 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.