Architecture de Kubernetes

Qu’est-ce qu’un Cluster Kubernetes ?
Un Cluster Kubernetes est un ensemble de machines (physiques ou virtuelles) qui travaillent ensemble pour exécuter et gérer vos applications conteneurisées.
On peut le voir comme un « groupe coordonné » où chaque machine a un rôle précis :
Le master (ou nœud maître) qui contrôle et gère tout le cluster. Il prend les décisions, planifie où les applications doivent tourner, et surveille l’état général.
Les nœuds (nodes) de travail qui hébergent les Pods, donc vos applications. Ce sont eux qui exécutent réellement les conteneurs.
Le cluster Kubernetes assure la répartition, la montée en charge, la résilience et la gestion automatisée de vos applications sur ces machines.
On peut utiliser l’analogie entre les composants de Kubernetes et une école/un port:
Composant Kubernetes | Fonction réelle | 🎓 Analogie école | ⚓ Analogie portuaire |
Cluster | Ensemble de machines qui exécutent les applications | L'école entière | Le port complet avec tous ses quais |
Control Plane | Cerveau du cluster : prend les décisions, planifie, surveille | Le directeur de l’école | La tour de contrôle / le capitaine du port |
Node (Worker Node) | Machine qui exécute les applications (pods) | Les enseignants | Les quais où les bateaux sont chargés |
Pod | Groupe d’un ou plusieurs conteneurs exécutés ensemble | Une classe avec des élèves | Un bateau avec des conteneurs à bord |
Container | Unité d’application légère, isolée | Un élève dans une classe | Un conteneur à l’intérieur d’un bateau |
kubectl | Outil pour communiquer avec le cluster | Le carnet ou téléphone du directeur | Le talkie-walkie du capitaine |
Les composants du Control Plane (le cerveau de Kubernetes)
API Server :
C’est la porte d’entrée du cluster. Il reçoit toutes les commandes qu’on envoie aveckubectl
, le tableau de bord, ou d'autres outils.etcd :
C’est la mémoire du cluster. Il garde toutes les informations importantes (état, configuration) sous forme de paires clé-valeur. Pour faire simple, c’est une base de données clé-valeur.Scheduler :
C’est lui qui décide où (sur quel nœud) un nouveau Pod sera lancé.Controller Manager :
Il surveille tout ce qui se passe dans le cluster, et agit si quelque chose ne va pas (par exemple, si un Pod tombe, il en relance un autre).Cloud Controller Manager (CCM) :
Si le cluster est dans un cloud (comme AWS, Azure, etc.), il s’occupe de connecter Kubernetes avec les services du cloud : machines, disques, réseaux, etc.
Les composants des Nodes (les bras du cluster)
Kubelet :
C’est l’agent du node. Il reçoit les instructions du Control Plane et s’assure que les Pods sont bien lancés comme prévu.Container Runtime :
C’est le moteur qui lance réellement les conteneurs (par exemple : Docker, containerd, etc.).kube-proxy :
Il gère le réseau sur le node. Il fait en sorte que les Pods puissent communiquer entre eux et avecl’extérieur.
🧠 En résumé :
Le Control Plane donne les ordres.
Le Node les exécute, grâce à Kubelet, Container Runtime et kube-proxy.
Après avoir exploré l’architecture générale de Kubernetes, il est important de comprendre certains éléments(objets) que l’on rencontre souvent lorsqu’on travaille avec cet outil. Ces éléments clés sont le Pod, le ReplicaSet et le Deployment.
Qu’est-ce qu’un Pod ?
Le Pod est l’unité de base dans Kubernetes. On peut le voir comme un petit morceau de votre application, la plus petite unité déployable.
Un Pod peut contenir un ou plusieurs conteneurs qui travaillent ensemble. Tous les conteneurs d’un même Pod partagent la même adresse IP et les mêmes ports, ce qui leur permet de communiquer facilement entre eux, comme s’ils étaient sur la même machine.
👉 De plus, si un volume de stockage est défini dans le Pod, tous les conteneurs peuvent partager cet espace commun, ce qui est très pratique pour échanger des fichiers ou conserver des données partagées.
Qu’est-ce qu’un ReplicaSet ?
Maintenant que nous comprenons ce qu’est un Pod, voyons comment Kubernetes s’assure que le bon nombre de ces Pods est toujours en fonctionnement. C’est ici qu’intervient le ReplicaSet.
Le ReplicaSet agit comme un gardien des copies de votre application. Son rôle principal est de garantir qu’il y ait toujours un nombre défini de Pods actifs. Pour cela, il surveille en permanence l’état des Pods.
Si un Pod disparaît ou plante, le ReplicaSet crée un nouveau Pod pour le remplacer. Inversement, s’il y a trop de Pods en cours d’exécution, il en supprime certains pour revenir au nombre souhaité.
En résumé, le ReplicaSet garantit la disponibilité et la stabilité de votre application en maintenant le nombre exact de Pods requis.
Qu’est-ce qu’un Deployment ?
Enfin, pour gérer facilement les mises à jour et l’évolution de votre application, Kubernetes propose le Deployment.
Le Deployment est comme un chef d’orchestre. Il orchestre le déploiement de vos Pods et ReplicaSets, permettant de mettre à jour votre application sans interruption de service.
Grâce au Deployment, vous pouvez déployer de nouvelles versions de votre application de manière progressive, gérer les retours en arrière si besoin, et assurer une évolution continue sans risque.
Subscribe to my newsletter
Read articles from Mario Fadegnon directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
