Alan Zeichick | Senior Writer | 5 septembre 2025
Kubernetes est une plateforme open source conçue pour gérer des applications de très grande envergure, composées d'un très grand nombre de services conteneurisés. Développé par des ingénieurs de Google en 2014 et publié peu après en open source, Kubernetes est aujourd'hui un écosystème dynamique, pris en charge par presque tous les fournisseurs de cloud public. Kubernetes peut servir à gérer des applications natives du cloud construites avec des microservices, ainsi que des applications traditionnelles exécutées sur site ou dans le cloud.
L'un des atouts de Kubernetes tient à son automatisation, qui peut réduire considérablement le travail nécessaire pour gérer des applications sur un réseau.
Kubernetes est un système open source permettant de déployer, gérer et faire évoluer des applications conteneurisées, en particulier des applications natives du cloud développées avec des microservices. Parfois abrégé en K8s, Kubernetes permet aux administrateurs de regrouper des conteneurs en clusters pour en simplifier la gestion.
À quoi sert Kubernetes ? Tout commence par le déploiement de conteneurs qui contiennent soit une application complète, soit un composant d'application, souvent appelé service. Ces conteneurs sont déployés sur des serveurs, qui peuvent se trouver dans le cloud, sur site, répartis sur plusieurs clouds dans une configuration multicloud, ou dans une configuration hybride cloud/sur site.
Une fois les conteneurs déployés, Kubernetes assure la découverte des services, afin qu'une application ou un service puisse trouver, dans d'autres conteneurs, les services dont il a besoin. Kubernetes achemine le trafic vers la ressource appropriée sous son contrôle. Lorsqu'un système exécute plusieurs copies d'une application ou d'un service conteneurisé, généralement pour répondre à une forte demande, Kubernetes équilibre automatiquement la charge.
Un autre atout de Kubernetes est sa capacité à regrouper les conteneurs de manière cohérente avec le déploiement. Par exemple, il peut regrouper plusieurs conteneurs qui partagent le même stockage et le même réseau dans un pod, un terme que vous verrez souvent. Vous entendrez également parler de nœuds Kubernetes. Il s'agit de machines individuelles, soit des serveurs physiques, soit des machines virtuelles traditionnelles, qui hébergent des conteneurs. Un ensemble de nœuds exécutant Kubernetes, autrement dit un groupe de machines physiques ou virtuelles, est appelé un cluster.
Pour chaque conteneur, pod, nœud et cluster, Kubernetes gère les ressources de stockage, détecte et redémarre les conteneurs défaillants (un processus appelé « healing »), et peut même mettre en œuvre des protocoles de sécurité dans une application distribuée. Il peut être configuré pour gérer les mots de passe, les jetons de sécurité et les clés de chiffrement, ce qui facilite la protection des actifs critiques.
Le développement de la plateforme Kubernetes est supervisé par la Cloud Native Computing Foundation (CNCF).
Les conteneurs remplacent souvent un autre modèle de déploiement dans le cloud : les machines virtuelles (VM). Les conteneurs sont plus légers que les VM, car ils utilisent le système d'exploitation sous-jacent du serveur hôte et les pilotes de périphériques. À l'inverse, les VM sont plus volumineuses et nécessitent davantage de ressources de traitement, car chacune intègre son propre système d'exploitation. Ainsi, un serveur peut exécuter plus de conteneurs que de VM et, surtout, consacrer davantage de ressources processeur et mémoire à l'exécution des applications plutôt qu'à la maintenance de plusieurs instances de système d'exploitation, une par VM. Même s'il existe des cas spécifiques où les VM sont indispensables, les conteneurs offrent un modèle nettement plus efficace pour la plupart des déploiements d'applications dans le cloud.
Même si Kubernetes et les conteneurs sont liés, il est préférable de les considérer comme des technologies complémentaires. Kubernetes est une plateforme de gestion des conteneurs, souvent utilisée pour des déploiements à grande échelle comptant des centaines, voire des milliers de conteneurs. Les conteneurs rassemblent, dans un format exécutable unique, tout le code et toutes les dépendances nécessaires à une fonctionnalité, qu'il s'agisse d'un microservice ou d'une application complète.
Kubernetes est un outil conçu pour gérer de nombreux conteneurs simultanément, généralement dans le cloud. Parfois présenté comme le système d'exploitation du cloud, Kubernetes permet aux organisations de gérer des conteneurs à grande échelle.
Points à retenir
Kubernetes est une plateforme qui automatise le déploiement, la mise à l'échelle et la gestion des conteneurs. Kubernetes propose également des fonctions de « healing » des conteneurs, c'est-à-dire la détection des dysfonctionnements et leur correction. Kubernetes, c'est avant tout l'orchestration : comme un chef d'orchestre, il sait ce qui doit être fait, maintient tous les conteneurs en place et en bon fonctionnement, et intervient en cas de problème.
Et tout comme un chef d'orchestre s'appuie sur une partition qui prévoit un piano, des violons, quelques violoncelles et des cuivres, Kubernetes s'appuie sur un document qui décrit l'état souhaité des conteneurs d'une application. Ce document, appelé fichier de configuration, décrit les fonctions nécessaires au fonctionnement de l'application et indique quels conteneurs peuvent fournir ces fonctions. Le fichier de configuration répertorie également les serveurs, les dispositifs de stockage, les réseaux et les autres machines physiques disponibles pour les conteneurs de l'application.
Au lancement d'une application, Kubernetes charge les conteneurs nécessaires sur les serveurs disponibles conformément au fichier de configuration, puis exécute le logiciel dans ces conteneurs. Il surveille l'utilisation des ressources de chaque serveur (ou nœud) afin de s'assurer que les systèmes ne sont pas surchargés. Si c'est le cas, il déplace les conteneurs vers un serveur moins chargé en démarrant un nouveau conteneur, puis en arrêtant l'ancien. Si un conteneur est lui-même surchargé, Kubernetes lance une copie identique de ce conteneur sur un autre serveur et configure automatiquement un équilibreur de charge pour répartir le workload entre les deux. Si la demande augmente, il démarre un troisième conteneur, et ainsi de suite si nécessaire. Plus tard, si la charge diminue, Kubernetes arrête les conteneurs devenus inutiles afin de réduire les coûts et de libérer des ressources serveur pour d'autres tâches.
Lorsqu'un conteneur tombe en panne, Kubernetes démarre rapidement un nouveau conteneur sur un autre serveur et redirige le trafic réseau pour contourner la zone problématique, ce qui permet un basculement rapide.
Imaginez une application avec des centaines, voire des milliers de conteneurs, chacun fournissant des services indispensables à l'application. Les administrateurs système pourraient déployer et gérer les conteneurs manuellement, éventuellement avec l'aide d'outils d'automatisation pour certaines tâches comme l'équilibrage de charge ou la détection des pannes. Il existe d'ailleurs des outils pour gérer des conteneurs dans des déploiements de petite taille. Ils sont le plus souvent utilisés par les développeurs de logiciels et les équipes DevOps lors de la création et des tests de logiciels conteneurisés.
Cependant, sans un système d'orchestration plus complet, les exigences de l'administration système finissent par devenir ingérables.
L'intérêt de Kubernetes est qu'il s'agit d'une plateforme unique qui prend en charge les tâches d'automatisation, du déploiement des conteneurs à leur mise à l'échelle, jusqu'à la résolution des incidents. De plus, Kubernetes est open source et bénéficie d'une prise en charge étendue, notamment par tous les grands fournisseurs de cloud. On le retrouve partout. C'est pourquoi Kubernetes est le système privilégié pour gérer une application d'entreprise conteneurisée de grande envergure.
Lorsqu'une organisation décide de conteneuriser ses applications, adopter Kubernetes pour orchestrer ces conteneurs est une évidence, d'autant plus au vu des bénéfices obtenus.
Les ingénieurs de Google qui ont créé Kubernetes ont choisi ce nom à partir d'un mot grec ancien désignant un pilote ou un timonier, la personne qui dirige un navire, car Kubernetes déplace et gère une flotte de conteneurs. Et, à l'image d'un véritable porte-conteneurs, Kubernetes s'appuie sur de nombreux composants qui collaborent pour acheminer sa cargaison de données là où elle doit aller. Voici les termes que vous rencontrerez le plus souvent dans les échanges sur les conteneurs et la plateforme d'orchestration Kubernetes.
Kubernetes n'est pas qu'une plateforme de gestion des conteneurs ; c'est un outil d'orchestration sophistiqué qui automatise et simplifie tout le cycle de vie des applications, de la conception au déploiement, jusqu'à l'exploitation en production. Ses fonctionnalités robustes permettent de gérer efficacement des applications complexes et distribuées. Voici quelques-unes des principales fonctionnalités de Kubernetes :
Même si Kubernetes a été perfectionné au fil des années, sa courbe d'apprentissage reste abrupte. Cela dit, il vaut largement mieux prendre le temps d'apprendre Kubernetes que d'utiliser d'autres méthodes pour gérer de grandes applications distribuées. Voici quelques défis à prendre en compte :
Les entreprises utilisent Kubernetes pour de nombreux types d'applications ; on le retrouve dans l'e-commerce, l'industrie, la recherche, la finance, les services publics, en bref, dans pratiquement tous les secteurs. De nombreuses applications distribuées de grande taille qui utilisent des conteneurs peuvent tirer parti de l'orchestration et de l'automatisation offertes par Kubernetes. Voici quelques scénarios courants où Kubernetes peut vraiment faire la différence.
Le mariage entre Kubernetes et l'IA peut être un levier de transformation pour une entreprise, car Kubernetes peut jouer un rôle clé dans la gestion et l'orchestration des workloads d'IA dans le cloud. En particulier, Kubernetes fournit une plateforme robuste et flexible pour l'entraînement et le déploiement de l'IA, avec plusieurs avantages :
L'adoption massive de Kubernetes au cours de la dernière décennie a entraîné l'émergence d'un écosystème dynamique d'outils, de services et de technologies complémentaires. Cet écosystème renforce encore les capacités de Kubernetes et offre aux organisations diverses options pour adapter leur infrastructure et leurs pratiques de développement. Les principales catégories de cet écosystème incluent :
Toute discussion sur l'écosystème Kubernetes serait incomplète sans mentionner KubeCon, la conférence annuelle des développeurs et utilisateurs de Kubernetes, organisée par la Cloud Native Computing Foundation (CNCF). Depuis la première édition de KubeCon en 2015, qui avait réuni 500 participants, l'événement a considérablement grandi. En 2024, la conférence de Salt Lake City a attiré plus de 9 000 développeurs et ingénieurs.
Les bonnes pratiques Kubernetes pourraient remplir un livre, et d'ailleurs, de nombreux ouvrages ont déjà été écrits à ce sujet. Ne vous y trompez pas : Kubernetes est complexe. Cependant, suivre ces bonnes pratiques peut aider les entreprises à tirer parti de cette plateforme avec succès.
OCI Kubernetes Engine (OKE) est un service d’orchestration de conteneurs géré par Oracle qui peut réduire le temps et le coût de création d’applications cloud natives. OKE simplifie l'exploitation de Kubernetes de niveau entreprise à l'échelle, afin de vous permettre de déployer et de gérer facilement des workloads gourmands en ressources, comme l'IA, avec mise à l'échelle automatique, application de correctifs et mises à niveau. OKE offre :
La capacité de la plateforme Kubernetes à orchestrer et à automatiser le déploiement et la gestion des applications a révolutionné la façon dont les applications s'exécutent à l'ère du cloud native. À mesure que Kubernetes continue d'évoluer et de gagner en popularité, son importance devient encore plus grande. Les entreprises qui adoptent Kubernetes peuvent acquérir un avantage concurrentiel marqué, c'est pourquoi comprendre cette technologie est essentiel, autant pour les développeurs que pour les dirigeants.
Kubernetes est essentiel au développement cloud native, qui est la clé d'applications plus résilientes, évolutives et agiles, qu'elles s'exécutent dans le cloud, sur site, ou selon un modèle hybride ou multicloud.
Pourquoi Kubernetes est-il un composant critique de la stratégie cloud des entreprises ?
Kubernetes est essentiel, car c'est la façon dont les entreprises déploient, mettent à l'échelle et gèrent leurs applications distribuées, en particulier celles qui s'exécutent dans le cloud. L'automatisation offerte par Kubernetes améliore la fiabilité des applications tout en maximisant l'utilisation des ressources, ce qui permet de contenir les coûts.
Quels facteurs clés les entreprises doivent-elles prendre en compte lorsqu'elles adoptent Kubernetes à l'échelle ?
Il y a deux facteurs principaux à prendre en compte. Le premier concerne la préparation organisationnelle : vos ingénieurs et développeurs sont-ils prêts pour ce modèle de développement et de déploiement des applications ? L'autre est d'ordre technique : disposez-vous de la bonne approche architecturale pour concevoir et déployer Kubernetes et les conteneurs de manière sécurisée, stable et conforme aux exigences de gouvernance ?
Quels sont les principaux aspects de coût à considérer pour les entreprises qui exécutent Kubernetes à l'échelle ?
Kubernetes peut aider à réduire les coûts en maximisant l'utilisation des ressources cloud et en libérant des ressources telles que les serveurs et le stockage lorsqu'ils ne sont pas nécessaires. Cependant, la formation, les outils, ainsi que l'optimisation de votre réseau et de vos modèles applicatifs pour tirer pleinement parti des ressources disponibles représentent un coût.
Comment les entreprises peuvent-elles assurer une transition fluide vers Kubernetes à partir d'une infrastructure traditionnelle ?
C'est un changement majeur ! Commencez par introduire Kubernetes pour une petite application qui s'exécute déjà dans un conteneur, ou dans un petit nombre de conteneurs. Envisagez de commencer avec un service Kubernetes cloud qui gère le plan de données pour vous, plutôt que d'essayer d'apprendre, de déployer et d'exploiter vous-même l'ensemble des différents éléments. Expérimentez des mises à niveau, des retours en arrière, le contrôle, des pannes délibérées et bien plus encore, afin d'aider votre équipe à acquérir l'expérience nécessaire pour s'attaquer à des projets plus ambitieux, comme le refactoring d'une application monolithique en une application basée sur des microservices.