Quels sont les composants clés de Kubernetes ?

Kubernetes est un système complexe avec de nombreux composants interconnectés.

Voici quelques-uns des composants clés qui font partie d'une installation standard de Kubernetes :

  • API Server (kube-apiserver) : C'est le point d'entrée principal pour les commandes envoyées à un cluster Kubernetes. Il expose l'API de Kubernetes et est le composant central par lequel toutes les autres parties du système communiquent.
  • Etcd : C'est le stockage de clé-valeur utilisé par Kubernetes pour tous les détails de configuration et d'état de l'ensemble du cluster. Il contient toutes les informations sur les nœuds, les pods, les configurations, les secrets, les comptes, les rôles, les bindings et autres.
  • Scheduler (kube-scheduler) : Il attribue les pods (unité de base d'une application dans Kubernetes) aux nœuds en fonction de la capacité disponible, des exigences de ressources des pods, des contraintes d'affinité et d'anti-affinité, et d'autres règles.
  • Controller Manager (kube-controller-manager) : Il s'agit d'un composant qui regroupe plusieurs contrôleurs différents, y compris le contrôleur de nœud, le contrôleur de réplication, le contrôleur d'endpoints, etc. Les contrôleurs sont des boucles de contrôle qui observent l'état du cluster et prennent des mesures pour conduire l'état actuel vers l'état désiré.
  • Kubelet : C'est un agent qui s'exécute sur chaque nœud du cluster. Il s'assure que les conteneurs sont en cours d'exécution dans un pod et qu'ils sont en bonne santé.
  • Container Runtime : C'est le logiciel utilisé pour exécuter les conteneurs. Docker est le plus connu, mais d'autres comme containerd, rkt, CRI-O sont également supportés.
  • Kube Proxy : C'est un proxy réseau qui s'exécute sur chaque nœud du cluster, et qui aide à faire le routage du trafic réseau aux pods appropriés à partir d'autres pods ou d'autres réseaux.

En plus de ces composants, il y a d'autres outils et addons pour le DNS du cluster, la gestion des secrets, la visualisation de l'état du cluster, l'interface utilisateur graphique (Dashboard), etc.

Chaque composant joue un rôle clé dans la fourniture des fonctionnalités robustes et évolutives de Kubernetes.