1. Sujets
  2. Conteneurs
  3. Un cluster Kubernetes, qu'est-ce que c'est ?

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

CopiedFailedCopier l'URL
  • Un cluster Kubernetes est un ensemble de machines (les nœuds) qui servent à exécuter des applications conteneurisées. 
  • L'état souhaité d'un cluster Kubernetes définit ses charges de travail, ses images, ses ressources et ses configurations.
  • Un cluster Kubernetes se compose d'un plan de contrôle chargé de gérer des nœuds qui exécutent des tâches via des pods. Il est complété par des services de mise en réseau, des volumes pour le stockage persistant des données et des espaces de noms pour l'isolation virtuelle.
  • La gestion des clusters Kubernetes correspond à la façon dont une équipe informatique gère un groupe de clusters Kubernetes.
  • Les produits Red Hat comme OpenShift, Advanced Cluster Management et Ansible Automation Platform gèrent efficacement les déploiements de plusieurs clusters dans le cloud, sur site et à la périphérie du réseau.

Présentation

Un cluster Kubernetes est un ensemble de machines (les nœuds) qui servent à exécuter des applications conteneurisées. L'exécution de Kubernetes implique l'exécution d'un cluster.

Au minimum, un cluster contient un plan de contrôle avec au moins une machine de calcul (un nœud). Le plan de contrôle est responsable du maintien du cluster à l'état souhaité, c'est-à-dire qu'il vérifie notamment les applications exécutées et les images de conteneurs utilisées. Ce sont les nœuds qui exécutent les applications et les charges de travail.

Le cluster est à la base du principal avantage qu'offre Kubernetes, à savoir la possibilité d'ordonnancer et d'exécuter des conteneurs au sein d'un groupe de machines, physiques ou virtuelles, sur site ou dans le cloud. Les conteneurs Kubernetes ne sont pas liés à des machines individuelles. Ils sont dissociés dans l'ensemble du cluster.

Lire la présentation de Kubernetes pour les entreprisesPage affichée en Anglais (Français non disponible)

L'état souhaité d'un cluster Kubernetes correspond au modèle qui définit l'apparence et l'exécution des applications et de l'infrastructure dans une situation normale.

Au lieu de donner au cluster des instructions pas à pas (approche impérative), l'utilisateur déclare le résultat souhaité (approche déclarative) dans un fichier au format YAML ou JSON. Kubernetes s'efforce ensuite de produire ce résultat en continu.

Ce modèle définit généralement les éléments suivants :

  • Charges de travail : applications, microservices ou lots de tâches à exécuter
  • Échelle : nombre exact de copies (réplicas) de chaque conteneur qui doivent exister
  • Ressources : quantité de processeurs et de mémoire allouée à chaque application
  • Réseau et sécurité : ports ouverts, routage du trafic et utilisateurs qui disposent d'un accès
  • Résilience : mesures à prendre en cas de panne d'un conteneur ou d'un nœud matériel

L'état souhaité d'un cluster Kubernetes détermine les applications ou autres charges de travail à exécuter, ainsi que les images à utiliser, les ressources qui leur sont allouées et d'autres informations de configuration.

L'état souhaité est défini à l'aide de fichiers de configuration constitués de manifestes, c'est-à-dire des fichiers JSON ou YAML qui déclarent le type d'application à exécuter ainsi que le nombre de réplicas requis pour exécuter un système sain.

L'API Kubernetes permet de définir l'état souhaité du cluster. Il faut utiliser la ligne de commande (avec kubectl) ou l'API pour interagir avec le cluster et définir ou modifier l'état souhaité.

Kubernetes gère automatiquement le cluster pour qu'il corresponde à l'état souhaité. Prenons l'exemple simple d'une entreprise qui déploie une application avec un état souhaité de « 3 », signifiant que trois réplicas de l'application doivent s'exécuter. Si l'un de ces conteneurs tombe en panne, Kubernetes détecte que seuls deux réplicas s'exécutent et en ajoute donc un troisième pour atteindre l'état souhaité de « 3 ».

Il est également possible d'utiliser des modèles Kubernetes pour gérer automatiquement la mise à l'échelle du cluster en fonction de la charge. 

Lien avec les nœuds et les pods

Comme nous l'avons vu, un cluster est un ensemble de nœuds. Il existe d'autres concepts Kubernetes qu'il faut maîtriser pour comprendre le rôle d'un cluster.

  • 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.
  • Nœuds : machines qui exécutent les tâches demandées que le plan de contrôle leur attribue.
  • Pod : conteneur unique ou groupe de conteneurs déployés sur un seul nœud. Le pod est l'objet Kubernetes le plus petit et le plus simple.
  • Service : méthode qui permet d'exposer une application en cours d'exécution sur un ensemble de pods sous forme de service réseau. Le service dissocie la définition des tâches des pods.
  • Volume : répertoire contenant des données auxquelles les conteneurs d'un pod peuvent accéder. Un volume Kubernetes a la même durée de vie que le pod dans lequel il se trouve. Il survit à tous les conteneurs qui s'exécutent dans le pod, et les données sont conservées lors du redémarrage d'un conteneur.
  • Espace de noms : cluster virtuel. Les espaces de noms permettent à Kubernetes de gérer plusieurs clusters (pour plusieurs équipes ou projets) au sein du même cluster physique.

Innover grâce aux technologies Red Hat : sept témoignages de réussite

La gestion des clusters Kubernetes correspond à la façon dont une équipe informatique gère un groupe de clusters Kubernetes.

Avec l'émergence des applications cloud-native modernes, les environnements Kubernetes deviennent toujours plus distribués. Ils peuvent être déployés dans de nombreux datacenters sur site, dans le cloud public et à la périphérie du réseau.

Les entreprises qui souhaitent utiliser Kubernetes à grande échelle ou en production devront posséder plusieurs clusters (pour le développement, les tests et la production) distribués entre différents environnements, et être en mesure de les gérer efficacement.

En savoir plus sur la gestion des clusters Kubernetes

Avantages

Les pratiques de gestion des clusters Kubernetes transforment efficacement la façon dont les entreprises distribuent des logiciels en automatisant le déploiement, la mise à l'échelle et l'exploitation des applications conteneurisées.

Ces pratiques offrent divers avantages :

  • Amélioration de l'évolutivité : les applications peuvent être mises à l'échelle instantanément en fonction de la demande. Pour gérer les pics de trafic ou réduire les coûts pendant les heures creuses, le cluster ajuste automatiquement les charges de travail.
  • Renforcement de la résilience : Kubernetes surveille en permanence l'intégrité des conteneurs et des nœuds pour garantir une haute disponibilité. En cas de panne d'un conteneur ou d'un composant matériel, Kubernetes le redémarre ou le remplace automatiquement pour éviter tout temps d'arrêt.
  • Efficacité des ressources : Kubernetes évalue les besoins des charges de travail en matière de processeurs et de mémoire, puis les intègre aux nœuds pour optimiser l'utilisation de l'infrastructure et limiter le gaspillage.
  • Prise en charge des pratiques DevOps et de CI/CD : la nature déclarative de Kubernetes permet de traiter l'infrastructure comme du code. Celle-ci s'intègre facilement aux pipelines de CI/CD pour automatiser les phases de test et de déploiement, tout en laissant les équipes DevOps collaborer de manière plus rapide et agile.

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

La solution Red Hat® OpenShift® est une plateforme unifiée qui permet de développer, moderniser et déployer des applications à grande échelle. Avec elle, les équipes bénéficient d'une seule et même plateforme intégrée pour l'exploitation informatique et le développement. Elle propose des workflows pensés pour le développement, notamment les pipelines de CI/CD intégrés et la fonctionnalité source-to-image, qui donnent les moyens de passer directement du code de l'application au conteneur. Basée sur Kubernetes, la solution Red Hat OpenShift aide à travailler plus vite et efficacement grâce à un ensemble complet de services qui facilite la distribution des applications sur l'infrastructure choisie. 

En complément d'OpenShift, les entreprises peuvent utiliser les solutions Red Hat Advanced Cluster Management et Red Hat Ansible® Automation Platform pour déployer et gérer efficacement plusieurs clusters Kubernetes dans différents environnements, notamment sur site, dans le cloud public et à la périphérie du réseau.

Découvrir comment Red Hat aide à assembler et automatiser des environnements hybrides

 

Red Hat Advanced Cluster Management for Kubernetes | Essai de produit

Contrôle et visibilité de bout en bout sur les clusters Kubernetes.

En savoir plus

Présentation de l'architecture de Kubernetes

Brève présentation des composants de Kubernetes et de leurs interactions.

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

L'orchestration des conteneurs permet d'automatiser le déploiement, la gestion, la mise à l'échelle et la mise en réseau des conteneurs.

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.

Conteneurs : ressources recommandées

Articles associés