L'orchestration des conteneurs, qu'est-ce que c'est ?

Copier l'URL
  • L'orchestration des conteneurs est le processus qui consiste à automatiser le déploiement, la gestion, la mise à l'échelle et la mise en réseau des conteneurs tout au long de leur cycle de vie.
  • Les plateformes d'orchestration des conteneurs, telles que Kubernetes, offrent un fonctionnement fluide et autogéré.
  • L'orchestration permet de coordonner les microservices dans des conteneurs distincts.
  • Kubernetes élimine de nombreux processus manuels associés au déploiement et à la mise à l'échelle des applications conteneurisées.
  • Chez Red Hat, nous créons les outils essentiels pour sécuriser, simplifier et mettre à jour automatiquement les infrastructures de conteneurs.

Présentation

L'orchestration des conteneurs consiste à automatiser le déploiement, la gestion, la mise à l'échelle et la mise en réseau des conteneurs tout au long de leur cycle de vie. Ce processus permet de déployer des logiciels en toute cohérence dans de nombreux environnements différents, et ce, à grande échelle.

Les conteneurs, qui mettent en paquet une application et son environnement d'exécution dans une unité autonome, sont essentiels au développement d'applications cloud-native. L'orchestration des conteneurs est particulièrement importante pour les entreprises qui doivent déployer et gérer des centaines, voire des milliers d'hôtes et de conteneurs. La plupart des solutions d'orchestration des conteneurs sont basées sur Kubernetes, une plateforme Open Source couramment utilisée. 

Lire le livre numérique : Innover et transformer l'entreprise à l'aide d'une plateforme d'applications moderne

Les plateformes d'orchestration des conteneurs, telles que Kubernetes, automatisent l'ensemble du cycle de vie des conteneurs. Elles offrent un fonctionnement fluide et autogéré qui évite aux équipes d'effectuer la maintenance en continu.

L'orchestration des conteneurs procure divers avantages au niveau des méthodes de développement, des coûts et de la sécurité.

Accélération du développement

Les conteneurs, qui sont portables et s'exécutent de manière cohérente dans les différents environnements, permettent d'adopter des méthodes de développement logiciel plus rapides. L'orchestration des conteneurs facilite l'assemblage de pipelines de CI/CD (intégration et déploiement continus), qui améliorent la distribution des logiciels tout au long du cycle de développement logiciel grâce à l'automatisation. En outre, ce processus s'inscrit dans une approche DevOps qui vise à accélérer la concrétisation des projets, du développement au déploiement.

Réduction des coûts

L'orchestration des conteneurs permet de mettre automatiquement à l'échelle les conteneurs en fonction des besoins, et fournit donc les capacités nécessaires aux applications tout en conservant les ressources et en réduisant les coûts. Une plateforme d'orchestration des conteneurs peut offrir aux entreprises la flexibilité dont elles ont besoin pour utiliser efficacement des environnements multicloud et hybrides.

Sécurité

Le développement de logiciels dans des conteneurs permet aux équipes de corriger les problèmes de sécurité lors de la phase de création, plutôt que de mettre à jour une application en cours d'exécution ou de déployer des correctifs. De cette façon, il est possible de mieux prévoir le comportement des conteneurs et de détecter les comportements anormaux. Grâce à l'orchestration des conteneurs, les entreprises peuvent également appliquer des politiques de sécurité et de gouvernance, et les segmenter par pod ou groupe de pods. En outre, les plateformes d'orchestration des conteneurs prennent en charge le contrôle d'accès basé sur les rôles, qui permet d'attribuer aux utilisateurs et aux comptes de service des autorisations spécifiques.

Avantages de la sécurité native pour Kubernetes

L'orchestration des conteneurs aide à gérer les exigences opérationnelles élevées des applications cloud-native modernes. Auparavant, une application logicielle était qualifiée de « monolithique », car elle était constituée d'un seul bloc volumineux. Aujourd'hui, les applications se composent de plusieurs dizaines, voire centaines de petits services indépendants (les microservices) qui s'exécutent tous dans leur propre conteneur. En coordonnant ces variables, l'orchestration leur permet de communiquer, d'évoluer indépendamment et de s'exécuter de manière fiable dans différents environnements.

L'orchestration des conteneurs sert à automatiser et gérer diverses tâches :

  • Provisionnement et déploiement : l'outil d'orchestration lit le modèle de configuration, télécharge les images de conteneurs requises et les initialise automatiquement dans l'ensemble de l'infrastructure.
  • Configuration et ordonnancement : l'outil d'orchestration évalue les serveurs du cluster afin de choisir l'hôte idéal pour chaque conteneur et d'injecter les variables d'environnement et les paramètres de stockage nécessaires au moment du démarrage.
  • Allocation des ressources : à l'aide de limites définies pour le processeur et la mémoire, l'outil d'orchestration met intelligemment en paquet les conteneurs sur les serveurs, optimisant ainsi l'efficacité du matériel sans que les applications se privent mutuellement de ressources.
  • Mise à disposition de conteneurs : l'outil d'orchestration surveille en permanence le cluster et remplace instantanément tout conteneur en panne ou serveur défaillant.
  • Mise à l'échelle et équilibrage des charges de travail : l'outil d'orchestration active automatiquement des réplicas de conteneurs lorsque le trafic atteint les seuils de ressources définis, et les supprime quand la demande diminue afin de réduire les coûts.
  • Équilibrage de charge et routage du trafic : l'outil d'orchestration fournit un point de terminaison permanent pour le routage interne qui répartit uniformément le trafic réseau au sein d'un pool évolutif d'adresses IP de conteneurs.
  • Surveillance de l'intégrité des conteneurs : des sondes automatisées vérifient régulièrement la bonne exécution des conteneurs, ce qui permet de redémarrer instantanément les applications figées et de suspendre le trafic de celles qui sont encore en cours de démarrage.
  • Configuration des applications par conteneur : l'outil d'orchestration dissocie les paramètres du code de l'application en injectant des configurations uniques et des clés secrètes directement dans l'environnement du conteneur au moment de l'exécution.
  • Sécurisation des interactions : l'outil d'orchestration applique des politiques strictes et isolées de pare-feu réseau qui déterminent explicitement la liste des conteneurs autorisés à communiquer entre eux, réduisant ainsi les risques pour la sécurité.

Les outils d'orchestration des conteneurs fournissent un cadre pour la gestion des conteneurs et de l'architecture de microservices à grande échelle. Nombre d'entre eux peuvent servir pour la gestion du cycle de vie des conteneurs. Parmi les plus utilisés figurent Kubernetes, Docker Swarm et Apache Mesos.

Kubernetes est un outil Open Source d'orchestration des conteneurs, qui a été développé et conçu à l'origine par l'équipe d'ingénierie de Google. Google a fait don du projet Kubernetes à la Cloud Native Computing Foundation à sa fondation en 2015.

Rôle de Kubernetes dans l'orchestration des conteneurs

Les fonctions d'orchestration de Kubernetes permettent d'assembler des services d'applications sur plusieurs conteneurs, d'ordonnancer l'exécution des conteneurs dans un cluster, de les mettre à l'échelle et de gérer leur intégrité au fil du temps.

Kubernetes élimine de nombreux processus manuels associés au déploiement et à la mise à l'échelle des applications conteneurisées. Cette plateforme donne les moyens de gérer plus facilement et efficacement des clusters au sein desquels sont rassemblés des groupes d'hôtes (des machines physiques ou virtuelles) exécutant des conteneurs Linux. 

Autrement dit, elle aide à mettre en œuvre et utiliser une infrastructure de conteneurs dans des environnements de production. Ces clusters peuvent couvrir des hôtes situés dans des clouds publics, privés ou hybrides. C'est la raison pour laquelle Kubernetes est la plateforme idéale pour héberger les applications cloud-native qui requièrent une mise à l'échelle rapide.

Kubernetes contribue également à la portabilité des charges de travail et à l'équilibrage de charge en permettant de déplacer des applications sans les remanier. 

Voici les principaux composants de Kubernetes :

  • Cluster : plan de contrôle avec au moins une machine de calcul (un nœud).
  • Plan de contrôle : ensemble des processus qui contrôlent les nœuds Kubernetes. C'est du plan de contrôle qu'émanent toutes les attributions de tâches.
  • Kubelet : service exécuté sur des nœuds qui lit les manifestes du conteneur pour s'assurer que les conteneurs définis ont démarré et fonctionnent.
  • Pod : conteneur unique ou groupe de conteneurs déployés sur un seul nœud. Tous les conteneurs d'un pod partagent une adresse IP, un espace de noms IPC, un nom d'hôte ainsi que d'autres ressources.

Les outils d'orchestration des conteneurs exécutent une boucle de rapprochement continu (également appelée boucle de contrôle) qui veille constamment au respect des instructions données.

Au lieu de donner à l'outil des commandes pas à pas (méthode impérative), l'utilisateur lui fournit le modèle du résultat souhaité (méthode déclarative). La seule tâche de l'outil d'orchestration est de s'assurer que l'état réel de l'infrastructure correspond toujours parfaitement à ce modèle.

Les outils d'orchestration des conteneurs tels que Kubernetes reposent sur l'utilisation d'un fichier YAML ou JSON qui décrit la configuration d'une application. Ce fichier de configuration indique à l'outil de gestion de la configuration où trouver les images de conteneurs, comment établir un réseau et où stocker les journaux.

Lors du déploiement d'un nouveau conteneur, l'outil de gestion planifie automatiquement le déploiement vers un cluster et trouve l'hôte adéquat, en tenant compte de toutes les exigences ou restrictions définies. L'outil d'orchestration gère ensuite le cycle de vie du conteneur sur la base des caractéristiques inscrites dans le fichier de composition.

Les modèles Kubernetes peuvent être utilisés pour gérer la configuration, le cycle de vie et la mise à l'échelle des applications et services conteneurisés. Les équipes de développement Kubernetes ont besoin de ces modèles reproductibles pour assembler des systèmes complets. 

L'orchestration des conteneurs peut être appliquée dans tous les environnements qui exécutent des conteneurs, notamment les serveurs sur site et les environnements de cloud public ou privé.

Un déploiement Kubernetes, qu'est-ce que c'est ?

Chez Red Hat, nous contribuons activement aux technologies Open Source de conteneurisation. Nous créons les outils essentiels pour sécuriser, simplifier et mettre à jour automatiquement les infrastructures de conteneurs.

Avec Red Hat® OpenShift®, les équipes de développement peuvent créer des applications conteneurisées, les héberger et les déployer dans le cloud tout en bénéficiant du niveau d'évolutivité, de contrôle et d'orchestration nécessaire pour concrétiser rapidement toutes les idées. Pour le déploiement et la migration des charges de travail Kubernetes vers un service cloud géré, OpenShift est également disponible sous forme de service cloud-native sur AWS, Microsoft Azure, Google Cloud, IBM Cloud et auprès d'autres fournisseurs.

Sur la base d'OpenShift, il est possible d'utiliser Red Hat Advanced Cluster Management et Red Hat Ansible® Automation Platform ensemble pour déployer et gérer efficacement plusieurs clusters Kubernetes dans tous les environnements, notamment ceux de cloud public, sur site et d'edge computing.

Tous les essais de produits Red Hat

Profitez de nos essais gratuits de produits pour renforcer votre expérience pratique, préparer une certification ou évaluer l'adéquation d'un produit avec les besoins de votre entreprise.

En savoir plus

Un opérateur Kubernetes, qu'est-ce que c'est ?

Un opérateur Kubernetes est un mécanisme de mise en paquet, de déploiement et de gestion d'une application qui s'appuie sur l'API Kubernetes.

Kubernetes, qu'est-ce que c'est ?

Kubernetes est une plateforme d'orchestration des conteneurs qui élimine de nombreux processus manuels associés au déploiement et à la mise à l'échelle des applications conteneurisées.

Fonctions VNF et CNF : quelle est la différence ?

Les fonctions réseau virtualisées (VNF) sont des applications logicielles basées sur une infrastructure de virtualisation des fonctions réseau (NFV), qui permettent de fournir des services d'annuaire, des routeurs, des pare-feu, des modules d'équilibrage de charge et bien d'autres fonctions réseau. Les fonctions réseau cloud-native (CNF) sont une évolution des VNF qui exécutent des fonctions réseau au sein de conteneurs.

Conteneurs : ressources recommandées

Articles associés