coldwa.st
Tous les guidesProgrammationWebDonnéesOutilsBases de donnéesHaskellConceptsCabal & buildsChaîne d’outilsCompilateurPerformanceÉditeur & HLS

Programmation · DevOps · orchestration

Kubernetes, c’est quoi ?

Par ColdwastMis à jour le 19 juin 20268 min de lecture#kubernetes#containers#devops
Une vieille barre à roue de navire en bois, le gouvernail
Une barre à roue de navire — le gouvernail. « Kubernetes » signifie « timonier » en grec, et le logo du projet est une roue de navire : le système qui pilote une flotte de conteneurs.

Une fois une appli empaquetée dans un conteneur, un nouveau problème surgit : qui le démarre, le redémarre quand il plante, en lance plus de copies sous la charge, et les relie tous — sur des dizaines de machines ? C’est l’orchestration, et Kubernetes est le système que la plupart des équipes utilisent pour cela. Ce guide explique ce qu’est Kubernetes, les concepts qui comptent, son lien avec Docker, et quand vous en avez vraiment besoin.

La définition courte

Kubernetes est une plateforme open source pour exécuter et coordonner des conteneurs sur un groupe de machines. Vous décrivez l’état souhaité — « lance cinq copies de cette appli, garde-les en bonne santé, expose-les à cette adresse » — et Kubernetes travaille en continu pour que la réalité corresponde : il place les conteneurs sur les machines, redémarre ceux qui échouent, ajuste l’échelle et achemine le trafic vers eux. On l’abrège souvent en K8s (K, huit lettres, s).

Le problème qu’il résout

Lancer un conteneur à la main est simple. En lancer des centaines, de façon fiable, ne l’est pas. Les machines tombent, le trafic explose, il faut déployer de nouvelles versions sans interruption, et les conteneurs doivent se trouver et se parler. Tout faire manuellement est source d’erreurs et ne dort jamais. Kubernetes en fait un système déclaratif : vous décrivez ce que vous voulez, et la boucle de contrôle de la plateforme l’applique sans cesse — en remplaçant un conteneur planté ou en replanifiant le travail hors d’une machine morte, sans réveiller un ingénieur à 3 h du matin.

Des rangées de baies de serveurs éclairées dans un centre de données
Des rangées de serveurs dans un centre de données — Kubernetes traite un groupe de machines comme un seul pool et y planifie les conteneurs.

Les concepts clés

  • Cluster — l’ensemble du système : un groupe de machines que Kubernetes gère comme un tout. Il a un plan de contrôle (le cerveau qui décide) et des nœuds de travail (où vos conteneurs s’exécutent vraiment).
  • Nœud — une machine unique (physique ou virtuelle) du cluster qui exécute des conteneurs.
  • Pod — la plus petite unité que Kubernetes exécute : un ou plusieurs conteneurs étroitement liés partageant un stockage et une adresse réseau. On exécute en général de nombreux pods identiques d’une appli.
  • Déploiement — une déclaration de l’état souhaité pour vos pods : quelle image, combien de répliques, et comment déployer les mises à jour. Kubernetes aligne l’état réel dessus.
  • Service — une adresse réseau stable et un répartiteur de charge pour un ensemble de pods, afin que les autres parties du système les atteignent même quand les pods individuels vont et viennent.

Comment ça marche, en bref

Vous soumettez une description de ce que vous voulez — souvent un fichier YAML définissant un déploiement et un service. Le plan de contrôle enregistre cet état souhaité et planifie les pods sur des nœuds qui ont de la place. Une boucle de contrôle compare ensuite en permanence l’état souhaité et l’état réel : si un pod meurt ou un nœud échoue, Kubernetes le remarque et recrée les pods manquants ailleurs. La mise à l’échelle suit la même idée — passez « 5 répliques » à « 20 » et le planificateur comble l’écart. Ce modèle déclaratif et auto-réparateur est au cœur de la confiance accordée à Kubernetes en production.

Kubernetes vs Docker

Ils sont complémentaires, pas rivaux. Docker construit et exécute un conteneur individuel sur une machine. Kubernetes orchestre de nombreux conteneurs sur de nombreuses machines — il les planifie, les met à l’échelle, les répare et les met en réseau. Docker empaquette et exécute un conteneur ; Kubernetes gère une flotte. Kubernetes exécute des conteneurs bâtis selon les standards ouverts que Docker a popularisés : les deux occupent des couches différentes de la même pile plutôt que de se concurrencer.

En avez-vous vraiment besoin ?

Honnêtement, souvent non — du moins pas encore. Kubernetes brille quand vous exécutez de nombreux services, avez besoin de haute disponibilité et disposez de l’équipe pour l’exploiter. Pour une seule appli ou un petit projet, c’est généralement excessif : un serveur unique, un service de conteneurs managé ou une plateforme-as-a-service sera plus simple et moins cher. Le coût de Kubernetes est une vraie complexité — réseau, stockage, sécurité et mises à jour demandent de l’expertise. Adoptez-le quand l’échelle justifie le surcoût, pas par effet de mode.

Managé vs auto-hébergé

Vous pouvez exécuter Kubernetes vous-même, mais la plupart des équipes utilisent un service managé où un fournisseur cloud exploite le plan de contrôle pour vous, de sorte que vous ne gérez que vos charges de travail. Cela retire une grande partie du fardeau opérationnel et constitue le choix par défaut raisonnable pour la plupart des projets qui ont réellement besoin d’orchestration.

Recommandé

Un endroit où exécuter vos conteneurs

Kubernetes (et Docker) ont besoin de machines pour tourner. Un VPS ou un serveur cloud vous donne le contrôle total du runtime pour déployer des conteneurs, un cluster ou une simple appli. Infomaniak — un fournisseur suisse respectueux de la vie privée — propose des VPS et serveurs cloud pour exactement cela.

Voir Infomaniak Cloud →

Lien affilié — il soutient ces guides gratuits.

Les conteneurs exposent en général une API et se parlent via des protocoles comme gRPC ou REST. Parcourez d’autres explications claires dans notre index des guides.

Questions fréquentes

Kubernetes, c’est quoi en termes simples ?

Kubernetes est un logiciel qui exécute et gère des conteneurs sur un groupe de machines à votre place. Vous décrivez l’état souhaité — combien de copies d’une appli exécuter et comment les atteindre — et Kubernetes maintient la réalité conforme, en redémarrant les conteneurs en échec, en les mettant à l’échelle et en acheminant le trafic automatiquement.

Quelle est la différence entre Docker et Kubernetes ?

Docker construit et exécute un conteneur individuel sur une machine. Kubernetes orchestre de nombreux conteneurs sur de nombreuses machines — planification, mise à l’échelle, redémarrage et mise en réseau. Docker gère un seul conteneur ; Kubernetes gère une flotte. Ils sont complémentaires : Kubernetes exécute des conteneurs bâtis selon les standards que Docker a popularisés.

Qu’est-ce qu’un pod dans Kubernetes ?

Un pod est la plus petite unité que Kubernetes exécute : un ou plusieurs conteneurs étroitement liés qui partagent un stockage et une adresse réseau. Les applications s’exécutent en général sous forme de nombreux pods identiques, que Kubernetes peut mettre à l’échelle et remplacer automatiquement si l’un échoue.

Ai-je besoin de Kubernetes pour un petit projet ?

Généralement non. Kubernetes est conçu pour exécuter de nombreux services à grande échelle avec une haute disponibilité, et il ajoute une réelle complexité opérationnelle. Pour une seule appli ou un petit projet, un serveur unique, un service de conteneurs managé ou une plateforme-as-a-service est plus simple et moins cher.

Guide indépendant, maintenu par la communauté. coldwa.st est un site de ressources de programmation ; cet article est un écrit explicatif nouveau et original sur Kubernetes et l’orchestration de conteneurs. Les exemples reflètent des outils largement utilisés ; vérifiez les détails dans la documentation officielle de Kubernetes.