Qu'est-ce qu'un cluster Kubernetes ?

Publié le 18 mars 2020
Motif de plusieurs ordinateurs portables ouverts disposés en diagonale sur un fond orange avec des espacements et des ombres répétés
By Sai Vennam

Clusters Kubernetes définis

Un cluster Kubernetes est un ensemble de nœuds informatiques — machines virtuelles ou physiques — qui exécutent des applications conteneurisées gérées avec la plateforme d’orchestration de conteneurs Kubernetes.

Le cloud offre une multitude d’avantages à l’entreprise, notamment la flexibilité, l’agilité, la portabilité et le contrôle des coûts. Ces avantages s'accompagnent toutefois de la complexité de la gestion du cloud et de la fourniture des applications qui y sont intégrées. Kubernetes est une plateforme d'orchestration de conteneurs qui peut vous aider à atténuer ces complexités.

Les clusters constituent la base architecturale de Kubernetes. Pensez aux clusters comme à des éléments de construction qui permettent une livraison rapide et contrôlée d’application cloud. Un cluster Kubernetes est un ensemble de machines connectées qui fonctionnent ensemble comme une seule unité. Ils se composent de nœuds de travail, qui représentent un hôte informatique sur lequel il est possible de déployer, d'exécuter et de gérer des applications conteneurisées. Les nœuds travailleurs sont gérés par des nœuds maîtres, qui planifient les conteneurs sur ces nœuds en choisissant où les déployer en fonction de la capacité disponible et de la configuration définie par l’utilisateur.

Les scripts spécifient la configuration du conteneur et les ressources nécessaires à l'exécution de l'application, telles que le stockage persistant, les services, etc. Dans Kubernetes, les pods sont les plus petites unités déployables dans un cluster et ils regroupent des conteneurs qui doivent être traités comme une seule unité. Kubernetes crée des pods pour héberger des instances d'application. Les pods contiennent un ou plusieurs conteneurs d'applications et partagent des ressources, telles que des informations de stockage ou de réseau.

L’évolution vers l’orchestration Kubernetes

L’avènement des conteneurs a contribué à simplifier le cloud computing. Les conteneurs regroupent le code et toutes ses dépendances, ce qui permet à une pile logicielle de fonctionner quel que soit l'environnement dans lequel elle se trouve. Bien que les conteneurs offrent des packages discrets, ils compliquent également les problèmes de gestion. Le défi était de trouver un moyen de faire fonctionner ces packages légers et efficaces. L'orchestration a été la prochaine évolution en matière de simplification des environnements multicloud.

Pour en savoir plus sur la conteneurisation, consultez notre vidéo « La conteneurisation expliquée ».

Pour en savoir plus sur l'orchestration de conteneurs, consultez notre vidéo « L'orchestration de conteneurs expliquée ». (lien externe à ibm.com).

Kubernetes fournit une plateforme open source pour gérer les charges de travail conteneurisées et les microservices (lien externe à ibm.com). Ceci permet aux développeurs de surmonter les différences entre les fournisseurs de cloud en appliquant des normes et une cohérence générales pour les applications basées sur des conteneurs. La plateforme est centrée sur les conteneurs et orchestre le stockage, la mise en réseau et le calcul au service des workloads des utilisateurs.

Avec Kubernetes, les utilisateurs peuvent se concentrer sur les fonctionnalités qu'ils souhaitent utiliser dans leurs applications cloud plutôt que de développer des fonctionnalités spécifiques à la plateforme. C’est l’architecture Kubernetes sous-jacente qui alimente cette capacité.

Pour un examen plus approfondi des capacités d'orchestration de conteneurs de Kubernetes, consultez « Kubernetes vs. Docker : It's Not an Either/Or Question » ( Kubernetes vs. Docker : ce n'est pas une question de choix ):

 

Architecture de cluster Kubernetes

Les clusters Kubernetes sont les éléments constitutifs de Kubernetes et constituent le fondement architectural de la plateforme. La modularité de cette structure modulaire garantit la disponibilité, l'évolutivité et la facilité de déploiement.

Les charges de travail actuelles exigent une grande disponibilité tant au niveau des applications qu’au niveau de l’infrastructure. En créant une couche d'abstraction entre les applications et leur infrastructure sous-jacente, Kubernetes répartit efficacement la Workload entre les Ressources disponibles. Kubernetes vous protège contre les défaillances des applications grâce à des contrôles constants de l’état de santé des nœuds et des conteneurs. Si un conteneur tombe en panne, l'autorégénération et la réplication permettent de résoudre le problème. Les équilibreurs de charge intégrés répartissent la charge de travail sur des ressources ouvertes afin de réduire l’impact des pics de trafic, des pics ou des pannes.

Cette même utilisation efficace des ressources joue un rôle dans la mise à l’échelle. L'ajout et la suppression de nouveaux serveurs sont simplifiés, ce qui permet une mise à l'échelle horizontale transparente. L'auto-scaling augmente le nombre de conteneurs actifs en fonction d'indicateurs spécifiques. Les contrôles de réplication arrêtent les pods excédentaires s’il y en a trop, ou démarrent les pods s’il n’y en a pas assez.

Pour en savoir plus sur l'architecture de Kubernetes, regardez la vidéo suivante : « Kubernetes Explained » :

Voir la vidéo

La rapidité est essentielle pour les développeurs. Kubernetes est conçu pour faciliter la création, le test et la publication rapides de logiciels. Les nouvelles versions ou les versions mises à jour sont diffusées par déploiement automatisé. Cela fonctionne également bien avec les versions canari, ce qui permet de déployer de nouvelles versions parallèlement aux versions antérieures, en vérifiant la fiabilité de la nouvelle version avant de la déployer dans une production complète.

Surveillance du cluster Kubernetes via Prometheus

À mesure que les applications conteneurisées deviennent plus granulaires et indépendantes, leur surveillance devient un défi. Ce défi s’étend à la surveillance des clusters Kubernetes. La surveillance traditionnelle indique si un programme, un service ou un outil est opérationnel (en cours d'exécution) ou en panne (inactif). Pour les microservices, l'approche montée/descente est trop marquée car un microservice à fonction unique peut être descendu sans avoir d'impact sur l'entreprise. Les outils de surveillance modernes doivent offrir des distinctions plus fines et mieux s'intégrer aux diverses plates-formes et aux applications mutables.

Prometheus — un outil open source de journalisation, de surveillance et d’alertes — est conçu pour la portabilité et la mutabilité des environnements multicloud, et il surmonte les limites traditionnelles de la surveillance. Il obtient des indicateurs riches à partir de clusters Kubernetes, de nœuds worker et de déploiements. Prometheus utilise des paires clé-valeur, ce qui correspond bien à la façon dont Kubernetes organise les métadonnées. Prometheus scrape régulièrement et découvre automatiquement les cibles de données, ce qui en fait un bon choix pour les Workloads éphémères.

IBM DevOps

Qu’est-ce que le DevOps ?

Andrea Crawford présente le DevOps, démontre sa valeur, et explique de quelle façon les pratiques et les outils DevOps vous aident à faire progresser vos applications dans l’ensemble du pipeline de livraison logiciel, de l’idéation à la production. Dirigé par des leaders d’opinion d’IBM, le programme a pour but d’aider les chefs d’entreprise à acquérir les connaissances nécessaires pour donner la priorité aux investissements dans l’IA capables de stimuler la croissance.

Auteur

Sai Vennam

Technical Offering Manager

Solutions connexes
IBM Instana Observability

Exploitez le pouvoir de l’IA et de l’automatisation pour résoudre de manière proactive les problèmes de la pile d’applications.

Découvrir IBM Instana Observability
Solutions DevOps

Utilisez les logiciels et outils DevOps pour construire, déployer et gérer des applications cloud natives sur plusieurs appareils et environnements.

Découvrir les solutions DevOps
Services de conseil en cloud

Renforcez l’agilité et la croissance de votre entreprise. Modernisez en continu vos applications sur n’importe quelle plateforme grâce à nos services de conseil cloud.

Découvrir les services de conseil cloud
Passer à l’étape suivante

De la détection proactive des incidents avec IBM Instana aux informations en temps réel sur l’ensemble de votre pile, garantissez la fiabilité de vos applications cloud-native.

  1. Découvrir IBM Instana
  2. Découvrir les solutions DevOps