

Kubernetes Facile : Concepts clés expliqués simplement
Quand j’ai souhaité me lancer dans l’univers K8s (Kubernetes), cela m’a semblé intimidant au début. Je me suis vite senti submergé par une multitude de termes et de concepts nouveaux. J’avais eu la chance, à mes débuts, d’avoir un ami qui a pris le temps de m’expliquer les bases simplement.
Avec cet article, je veux être cet ami pour vous.
Mon objectif est d’expliquer simplement, les concepts essentiels de Kubernetes.
La liste qui suit, se concentre sur les concepts fondamentaux que vous rencontrerez le plus souvent au début de votre aventure avec moi.
Ce n’est pas une liste exhaustive de tous les objets Kubernetes existants.
J’ai volontairement omis les termes plus spécifiques pour ne pas surcharger. Je détaillerai davantage ces aspects plus tard si nécessaire.
Comme vous le verrez, j’utiliserai principalement les termes anglais.
C’est un choix délibéré : ce sont les termes que vous rencontrerez partout dans les documentations, les tutoriels, les offres d’emploi et les discussions techniques.
Mieux vaut s’y habituer dès maintenant !
Glossaire des Concepts Clés de Kubernetes
Cluster
-
C’est quoi : C’est un ensemble de machines (serveurs physiques ou virtuels) travaillant de concert. Ces machines sont appelées Nodes.
-
Rôle : Fournir une plateforme unifiée et résiliente pour déployer, gérer et faire évoluer (monter en charge ou réduire) vos applications conteneurisées. C’est la fondation sur laquelle tout repose.
Node
-
C’est quoi : Une seule machine (serveur physique ou VM) au sein du cluster.
-
Rôle : Apporter la puissance de calcul (CPU, RAM) et l’environnement nécessaires pour exécuter les applications. Il existe deux rôles principaux pour un node : Worker Node et Control Plane Node.
Pod
-
C’est quoi : Les pods sont les plus petites unités informatiques déployables qui peuvent être créées et gérées dans Kubernetes. Un Pod représente une instance de votre application. Il contient un ou plusieurs Containers qui partagent le même environnement réseau et le même stockage (Volumes)
-
Rôle : Fournir un environnement d’exécution isolé pour des conteneurs qui doivent fonctionner ensemble. Kubernetes gère le cycle de vie des Pods, pas directement des conteneurs individuels.
Container / Conteneur
-
C’est quoi : Un package léger et autonome qui inclut tout le nécessaire pour exécuter une application : le code, les dépendances, les bibliothèques, les outils système. Docker est l’outil le plus connu pour créer et gérer des conteneurs, mais Kubernetes est compatible avec d’autres runtimes de conteneurs.
-
Rôle : Isoler l’application et ses dépendances du système hôte et des autres conteneurs, garantissant que l’application s’exécute de la même manière quel que soit l’environnement.
Worker Node
-
C’est quoi : Un node dont la mission principale est d’exécuter les pods contenant vos applications.
-
Rôle : Héberger et faire tourner les conteneurs de vos applications (via les Pods). Il exécute les agents nécessaires pour communiquer avec le Control Plane et gérer les conteneurs et le réseau localement.
Control Plane
-
C’est quoi : Le “cerveau” du cluster. Ce n’est pas une seule machine, mais un ensemble de composants de gestion qui peuvent être répartis sur un ou plusieurs Nodes dédiés (les Control Plane Nodes).
-
Rôle : Prendre les décisions globales pour le cluster (par exemple, sur quel Worker Node démarrer un nouveau Pod), surveiller en permanence l’état du cluster, réagir aux événements, et s’assurer que l’état actuel correspond à l’état que vous avez demandé. Il expose aussi l’API Kubernetes, le point d’entrée pour interagir avec le cluster.
Cluster Datastore
-
C’est quoi : Ce terme n’existe pas véritablement, mais je l’utilise pour parler du principe. C’est le composant qui sert de “mémoire” et de source de vérité unique pour l’ensemble du cluster.
-
Rôle : Stocker de manière persistante toute la configuration et l’état du cluster : quels Deployments existent, combien de Pods sont souhaités, quels Secrets sont définis, etc. Le Control Plane lit et écrit constamment dedans. L’implémentation standard est
etcd
.
Deployment / Déploiement
-
C’est quoi : Un objet Kubernetes qui vous permet de décrire l’état souhaité pour votre application, notamment en spécifiant combien d’instances (Pods) identiques doivent être exécutées.
-
Rôle : Gérer un ensemble de Pods répliqués. Il s’assure que le nombre désiré de Pods est toujours en cours d’exécution. Il permet également de gérer les mises à jour de manière contrôlée (mises à jour progressives ou “rolling updates”) et les retours en arrière faciles en cas de problème.
Service
-
C’est quoi : Une abstraction qui définit un point d’accès stable (une adresse IP et un nom DNS internes au cluster) pour un ensemble logique de Pods. Les Pods peuvent être créés et détruits, mais l’adresse du Service reste la même.
-
Rôle : Permettre aux différentes parties de votre application (ou à différentes applications) de communiquer entre elles de manière fiable. Il assure aussi une répartition de charge (load balancing) simple entre les Pods qu’il cible.
Ingress
-
C’est quoi : Un objet API qui gère l’accès externe (depuis l’extérieur du cluster) aux Services du cluster, typiquement pour le trafic web (HTTP et HTTPS).
-
Rôle : Agir comme un “aiguilleur” intelligent pour le trafic entrant. Il permet de définir des règles basées sur le nom d’hôte (ex: api.mondomaine.com) ou le chemin (ex: mondomaine.com/utilisateurs) pour router le trafic vers les bons Services internes. Il peut aussi gérer la terminaison SSL/TLS. Pour fonctionner, un Ingress Controller doit être déployé dans le cluster pour interpréter ces règles.
Namespace
-
C’est quoi : Un moyen de diviser les ressources d’un même cluster physique en plusieurs “clusters virtuels” isolés logiquement.
-
Rôle : Organiser les ressources (par projet, par équipe, par environnement - dev, prod…), éviter les conflits de noms entre différentes équipes/projets, et permettre d’appliquer des politiques spécifiques (contrôle d’accès RBAC, quotas de ressources, politiques réseau) à des sous-ensembles du cluster.
ConfigMap
-
C’est quoi : Un objet API utilisé pour stocker des données de configuration non sensibles (ex: URL de base de données, options de logging, etc.) sous forme de paires clé-valeur.
-
Rôle : Séparer la configuration du code de l’application. Cela permet de modifier la configuration sans avoir à reconstruire l’image du conteneur. Les Pods peuvent consommer ces données comme des variables d’environnement ou des fichiers montés.
Secret
-
C’est quoi : Très similaire à une ConfigMap, mais spécifiquement conçu pour stocker des informations sensibles (mots de passe, clés d’API, jetons d’authentification, certificats TLS).
-
Rôle : Gérer les données confidentielles de manière plus sécurisée. Kubernetes stocke les Secrets encodés (en base64 par défaut, ce qui n’est pas du chiffrement fort, mais évite de les voir en clair accidentellement) et offre des mécanismes pour contrôler plus finement qui peut y accéder.
PersistentVolumeClaim (PVC)
-
C’est quoi : Une demande de stockage faite par un utilisateur (ou une application) dans un Namespace spécifique. C’est comme dire “J’ai besoin de 10Go de stockage rapide”.
-
Rôle : Permettre à une application de demander et de consommer du stockage persistant. Kubernetes essaie de satisfaire cette demande en trouvant un PersistentVolume (PV) compatible disponible et en les liant ensemble (binding). Le Pod monte ensuite la PVC, qui lui donne accès au stockage du PV. Cela découple la demande de stockage (PVC) de la ressource de stockage réelle (PV).
PersistentVolume (PV)
-
C’est quoi : Une ressource du cluster qui représente un “morceau” de stockage réseau (comme un disque NFS par exemple) qui a été mis à disposition de l’ensemble du cluster par un administrateur.
-
Rôle : Abstraire les détails de l’infrastructure de stockage sous-jacente. Il représente une capacité de stockage disponible, indépendamment de tout Pod spécifique.
Conclusion
J’espère que ce glossaire revisité vous sera utile ! Kubernetes est un écosystème riche, mais en maîtrisant ces concepts fondamentaux, vous aurez une base solide pour explorer davantage. N’hésitez pas si vous avez d’autres questions ou si vous souhaitez approfondir certains points !
← Back to blog