Kubernetes, qu'est-ce que c'est ?

Copier l'URL

Red Hat classé leader dans le rapport Magic Quadrant™ de Gartner® de 2023

Red Hat a obtenu la meilleure note pour sa capacité d'exécution et sa vision globale dans la catégorie Gestion des conteneurs du rapport Magic Quadrant de Gartner de 2023.

Kubernetes (« k8s » ou « kube ») est une plateforme Open Source d'orchestration des conteneurs qui automatise de nombreux processus manuels associés au déploiement, à la gestion et à la mise à l'échelle des applications conteneurisées.

Initialement développé et conçu par des ingénieurs de Google dans le cadre du projet Borg, Kubernetes a été offert à la Cloud Native Computing Foundation (CNCF) en 2015. Red Hat® était l'une des premières entreprises à travailler avec Google sur le projet Kubernetes, et ce, bien avant son lancement. Red Hat est depuis devenu son deuxième contributeur principal

Un déploiement Kubernetes actif est un cluster, c'est-à-dire un groupe d'hôtes qui exécutent des conteneurs Linux®. Un cluster Kubernetes comprend deux principaux composants : le plan de contrôle et les machines de calcul ou nœuds.

A diagram showing the infrastructure of a Kubernetes cluster

Chaque nœud est son propre environnement Linux. Il peut s'agir d'une machine physique ou virtuelle. Chaque nœud exécute des pods, constitués de conteneurs. 

Le plan de contrôle est responsable du maintien du cluster dans un état souhaité, c'est-à-dire qu'il vérifie, par exemple, les applications exécutées et les images de conteneurs utilisées. Ce sont les machines de calcul qui exécutent concrètement les applications et les charges de travail. Le plan de contrôle reçoit les commandes d'un administrateur (ou d'une équipe DevOps) et transfère ces instructions aux machines de calcul.

Ce transfert fonctionne avec une multitude de services afin de choisir automatiquement le nœud le plus adapté à la tâche. Les services découplent les définitions de tâche à partir des pods et reçoivent automatiquement des demandes de service dans le bon pod, même s'il a été déplacé dans le cluster ou s'il a été remplacé. Ils allouent les ressources et attribuent le travail demandé aux pods de ce nœud.

Kubernetes fonctionne sur un système d'exploitation (Red Hat Enterprise Linux, par exemple) et interagit avec les pods des conteneurs qui s'exécutent sur les nœuds.

L'état souhaité d'un cluster Kubernetes détermine les applications ou autres charges de travail à exécuter, ainsi que les images à utiliser, les ressources qui leur sont allouées et d'autres informations de configuration.

Avec ce type d'infrastructure, la gestion des conteneurs est légèrement différente. Vous intervenez à un niveau supérieur, ce qui renforce votre contrôle, et vous n'avez pas à gérer individuellement chacun des conteneurs ou nœuds. 

Vous pouvez choisir l'environnement d'exécution de Kubernetes : serveurs bare metal, machines virtuelles ou clouds publics, privés et hybrides. Kubernetes peut fonctionner sur de nombreux types d'infrastructures, ce qui représente un avantage non négligeable.

Découvrez comment les conteneurs révolutionnent le cloud hybride ouvert.

Vous pouvez utiliser Docker en tant qu'environnement d'exécution orchestré par Kubernetes. Lorsque Kubernetes planifie un pod dans un nœud, le kubelet (le service qui s'assure que chaque conteneur s'exécute) de ce nœud donne l'ordre à Docker de lancer les conteneurs spécifiés.

Le kubelet collecte ensuite en continu le statut de ces conteneurs via Docker et rassemble ces informations dans le plan de contrôle. Docker transfère ces conteneurs dans ce nœud, les démarre et les arrête.

Lorsque vous utilisez Kubernetes avec Doker, la différence est l'origine des ordres : ils proviennent d'un système automatisé et non plus d'un administrateur qui assigne manuellement des tâches à tous les nœuds pour chaque conteneur.

Prêt à vous lancer avec Kubernetes ? Le cours à la demande que nous proposons vous apprendra à conteneuriser des applications et des services, à les tester avec Docker, puis à les déployer sur un cluster Kubernetes à l'aide de la solution Red Hat OpenShift®.

Kubernetes peut vous aider à distribuer et à gérer les applications conteneurisées, existantes et cloud-native ainsi que celles décomposées en microservices. 

Pour répondre aux besoins changeants de l'entreprise, votre équipe de développement doit être en mesure de créer rapidement des applications et des services. Le développement d'applications cloud-native permet d'accélérer le processus de développement et facilite la transformation ainsi que l'optimisation des applications existantes en commençant par le stockage des microservices dans des conteneurs. 

Développement d'applications avec Kubernetes

Les applications de production s'étendent dans plusieurs conteneurs, qui doivent être déployés sur différents hôtes serveur. Kubernetes vous offre les outils d'orchestration et de gestion requis pour déployer des conteneurs, à grande échelle, pour ces charges de travail.

Les fonctions d'orchestration de Kubernetes vous permettent de créer des services d'application sur plusieurs conteneurs, de planifier l'exécution de ces conteneurs dans un cluster, de les mettre à l'échelle et de gérer leur intégrité au fil du temps. Avec Kubernetes, vous pouvez prendre des mesures efficaces pour améliorer la sécurité informatique.

Kubernetes doit pouvoir s'intégrer aux services de mise en réseau, de stockage, de sécurité, de télémétrie, entre autres, pour fournir une infrastructure de conteneurs complète.

Kubernetes explained - diagram

Dans un environnement de production avec plusieurs applications, il vous faut plusieurs conteneurs colocalisés qui fonctionnent ensemble pour fournir chaque service individuel. 

Avec les conteneurs Linux, vos applications basées sur des microservices disposent d'une unité de déploiement et d'un environnement d'exécution parfaitement adaptés. De plus, les microservices stockés dans les conteneurs simplifient l'orchestration des services, notamment les services de stockage, de réseau et de sécurité.

Le nombre de conteneurs dans votre environnement augmente alors significativement et l'accumulation de ces conteneurs complexifie votre infrastructure.

Kubernetes vous permet de résoudre de nombreux problèmes courants liés à la prolifération des conteneurs en les triant au sein de « pods ». Ces pods ajoutent une couche d'abstraction aux groupes de conteneurs, ce qui vous aide à planifier les charges de travail et à fournir les services nécessaires (réseau, stockage, etc.) à ces conteneurs. 

D'autres composants de Kubernetes vous aident à équilibrer les charges sur ces pods et à vous assurer que vous disposez de suffisamment de conteneurs pour exécuter vos charges de travail.

Avec une bonne mise en œuvre de Kubernetes, et le soutien d'autres projets Open Source comme Open vSwitch, OAuth et SELinux, vous pouvez orchestrer l'ensemble de votre infrastructure de conteneurs.

Kubernetes est une plateforme Open Source. Aussi, il n'existe pas de structure de prise en charge officielle pour cette technologie. Du moins, aucune que votre entreprise pourrait adopter en toute confiance. Si vous rencontrez un problème lors de la mise en œuvre de Kubernetes ou pendant son fonctionnement en production, vous risquez d'être ennuyé. Tout comme vos clients.

Kubernetes, c'est comme un moteur. Il peut tourner de façon autonome, mais on obtient un véhicule pleinement fonctionnel uniquement lorsqu'on l'associe à un système de transmission, des essieux et des roues. Il ne suffit donc pas d'installer Kubernetes pour bénéficier d'une plateforme adaptée à la production. Cette technologie nécessite d'autres composants, notamment des outils d'authentification, de mise en réseau, de sécurité, de surveillance et de gestion de journaux. C'est là qu'intervient Red Hat OpenShift, pour vous offrir une solution complète. 

Red Hat OpenShift est une plateforme Kubernetes conçue pour les entreprises. Elle inclut de nombreuses technologies supplémentaires qui font de Kubernetes un outil puissant et viable pour les entreprises, notamment : les registres, la mise en réseau, la télémétrie, la sécurité, l'automatisation et les services. Kubernetes est au cœur de la plateforme Red Hat OpenShift, une solution Kubernetes certifiée par la CNCF.

Avec Red Hat OpenShift Container Platform, les développeurs peuvent créer des applications conteneurisées, les héberger et les déployer dans le cloud rapidement et facilement grâce à de bons niveaux d'évolutivité, de contrôle et d'orchestration. Si vous cherchez à déployer ou à migrer vos charges de travail Kubernetes vers un service cloud géré, OpenShift est également disponible sous forme de plateforme Kubernetes cloud-native sur Amazon Web Services (AWS), Microsoft Azure, Google Cloud, IBM Cloud et auprès d'autres fournisseurs.

En vous appuyant sur OpenShift, vous pouvez utiliser Red Hat Advanced Cluster Management et Red Hat Ansible® Automation Platform ensemble pour déployer et gérer efficacement plusieurs clusters Kubernetes dans tous les environnements, y compris ceux de cloud public, sur site et en périphérie.

Découvrez comment Red Hat vous aide à créer et à automatiser des environnements hybrides  

Cas d'utilisation : mettre au point une plateforme cloud pour offrir des services bancaires novateurs

Emirates NBD, l'une des plus grandes banques des Émirats arabes unis, avait besoin d'une base évolutive et résiliente qui lui permettrait d'innover dans le domaine du numérique. La banque rencontrait deux difficultés : la lenteur du provisionnement et la complexité de l'environnement informatique. La mise en place d'un serveur prenait deux mois, tandis que la modification des applications monolithiques prenait plus de six mois.

En se servant de la solution Red Hat OpenShift Container Platform pour l'orchestration, l'intégration et la gestion des conteneurs, la banque a créé Sahab, le premier cloud privé à grande échelle géré par une banque du Moyen-Orient. Sahab fournit des applications, des systèmes et d'autres ressources pour un développement complet, du provisionnement à la production, via un modèle de distribution en tant que service. 

Avec sa nouvelle plateforme, Emirates NBD a amélioré la collaboration entre les équipes internes et avec ses partenaires en utilisant des interfaces de programmation d'applications (API) et des microservices. En outre, grâce à des pratiques de développement agile et DevOps, la banque a réduit les cycles de lancement et de mise à jour des applications.

Vous ne savez pas encore tout sur les conteneurs…

Pour aller plus loin

ARTICLE

Conteneurs et machines virtuelles

Les conteneurs Linux et les machines virtuelles sont des environnements informatiques en paquets qui associent divers composants et les isolent du reste du système.

ARTICLE

L'orchestration des conteneurs, qu'est-ce que c'est ?

L'orchestration des conteneurs permet d'automatiser le déploiement, la gestion, la mise à l'échelle et la mise en réseau des conteneurs.

ARTICLE

Un conteneur Linux, qu'est-ce que c'est ?

Un conteneur Linux est un ensemble de processus isolés du système. Un conteneur s'exécute à partir d'une image distincte qui fournit tous les fichiers nécessaires à la prise en charge des processus qu'il contient.

En savoir plus sur les conteneurs

Produits

Une plateforme d'applications d'entreprise comprenant un ensemble unifié de services testés conçus pour distribuer des applications sur votre choix d'infrastructure.

Ressources

Formations

Cours gratuit

Présentation technique de l'exécution de conteneurs avec Red Hat

Cours gratuit

Présentation technique du déploiement d'applications conteneurisées

Cours gratuit

Développement d'applications cloud-native avec des architectures de microservices