Azure Container Instances et les orchestrateurs de conteneurs
En raison de leur taille réduite et de leur orientation d’application, les conteneurs conviennent parfaitement aux environnements de distribution agiles et aux architectures basées sur les microservices. La tâche d’automatisation et de gestion d’un grand nombre de conteneurs et de leur interaction porte le nom d’orchestration. Les orchestrateurs de conteneurs les plus courants sont Kubernetes, DC/OS et Docker Swarm.
Azure Container Instances fournit certaines des fonctionnalités de planification de base des plateformes d’orchestration. Et bien qu’il ne couvre pas les services de valeur supérieure fournis par ces plateformes, Azure Container Instances peut être un bon complément. Cet article décrit l’étendue des services gérés par Azure Container Instances et explique comment les orchestrateurs de conteneurs complets peuvent interagir avec lui.
Orchestration traditionnelle
La définition standard de l’orchestration comprend les tâches suivantes :
- Planification : avec une image conteneur et une requête de ressource données, rechercher une machine adaptée sur laquelle exécuter le conteneur.
- Affinité/Anti-affinité : spécifier que les conteneurs d’un ensemble doivent s’exécuter à proximité les uns des autres (à des fins de performances) ou suffisamment éloignés les uns des autres (à des fins de disponibilité).
- Supervision de l’intégrité : détecter les échecs de conteneur et les replanifier automatiquement.
- Basculement : effectuer le suivi de ce qui s’exécute sur chaque machine et replanifier des conteneurs à partir des machines ayant échoué sur des nœuds sains.
- Mise à l’échelle : ajouter ou supprimer des instances de conteneurs en fonction de la demande, manuellement ou automatiquement.
- Réseau : fournir un réseau superposé pour la coordination des conteneurs et la communication entre plusieurs machines hôtes.
- Détection de service : permettre aux conteneurs de se trouver mutuellement et automatiquement, même quand ils sont déplacés entre des machines hôtes et que leur adresse IP est modifiée.
- Coordination des mises à niveau d’application : gérer les mises à niveau des conteneurs pour éviter les temps d’arrêt des applications et autoriser une restauration en cas de problème.
Orchestration avec Azure Container Instances : une approche en couches
Azure Container Instances permet d’adopter une approche en couches de l’orchestration. Vous bénéficiez ainsi de toutes les fonctionnalités de planification et de gestion nécessaires pour exécuter un seul conteneur, tout en permettant aux plateformes d’orchestration de gérer les tâches à conteneurs multiples.
Puisqu’Azure gère toute l’infrastructure sous-jacente pour Container Instances, une plateforme d’orchestration n’a pas besoin de rechercher une machine hôte appropriée sur laquelle exécuter un conteneur unique. L’élasticité du cloud garantit qu’un ordinateur est toujours disponible. Au lieu de cela, l’orchestrateur peut se concentrer sur les tâches qui simplifient le développement des architectures multi-conteneurs, notamment la mise à l’échelle et la coordination des mises à niveau.
Scénarios
Bien que l’intégration d’orchestrateur avec Azure Container Instances en soit encore à ses débuts, nous prévoyons l’émergence de plusieurs environnements différents :
Orchestration exclusive de Container Instances
Du fait du démarrage rapide et de la facturation à la seconde, un environnement basé exclusivement sur Azure Container Instances offre le moyen le plus rapide de bien démarrer et de faire face à des charges de travail très variables.
Combinaison de Container Instances et de conteneurs sur des machines virtuelles
Pour les charges de travail longues et stables, l’orchestration des conteneurs dans un cluster de machines virtuelles dédiées est généralement moins coûteuse que l’exécution des mêmes conteneurs avec Azure Container Instances. Toutefois, Container Instances offre une excellente solution pour développer et contracter rapidement votre capacité globale en cas de pics d’utilisation inattendus ou de courte durée.
Au lieu de mettre à l’échelle le nombre de machines virtuelles dans votre cluster et de déployer ensuite davantage de conteneurs sur ces machines, l’orchestrateur peut planifier les conteneurs supplémentaires à l’aide d’Azure Container Instances et les supprimer quand ils ne sont plus nécessaires.
Exemple d’implémentation : nœuds virtuels sur Azure Container Instances
Pour rapidement mettre à l’échelle des charges de travail dans un cluster Azure Kubernetes Service (AKS), vous pouvez utiliser des nœuds virtuels créés dynamiquement dans Azure Container Instances. Les nœuds virtuels s’inscrivent en tant que nœuds ayant une capacité illimitée auprès du plan de contrôle de votre cluster AKS. Lorsque vous déployez des pods dans un nœud virtuel dans votre cluster AKS, ils s’exécutent en tant que groupes de conteneurs dans ACI.
Les nœuds virtuels prennent actuellement en charge les instances de conteneur Linux. Pour en savoir plus, consultez Nœuds virtuels sur Azure Container Instances.
Étapes suivantes
Créez votre premier conteneur avec Azure Container Instances à l’aide du guide de démarrage rapide.