Account Connexion
Jump to section

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

Copier l'URL

Kubernetes, k8s (pour k, 8 caractères, s) ou encore « kube », est une plateforme Open Source qui automatise l'exploitation des conteneurs Linux. Elle permet d'éliminer de nombreux processus manuels associés au déploiement et à la mise à l'échelle des applications conteneurisées. En d'autres termes, Kubernetes vous aide à gérer facilement et efficacement des clusters au sein desquels vous aurez rassemblé des groupes d'hôtes exécutant des conteneurs Linux. Ces clusters peuvent couvrir des hôtes situés dans des clouds publics, privés ou hybrides. C'est la raison pour laquelle Kubernetes est la plateforme idéale pour héberger les applications cloud-native qui requièrent une mise à l'échelle rapide, comme la diffusion de données en continu et en temps réel via Apache Kafka.

À l'origine, la plateforme Kubernetes a été développée et conçue par des ingénieurs chez Google. Google était l'un des premiers contributeurs aux technologies de conteneurs Linux, et a d'ailleurs expliqué publiquement que tout dans l'entreprise fonctionnait dans des conteneurs (il s'agit de la technologie à la base des services cloud de Google). Google déploie plus de 2 milliards de conteneurs par semaine via une plateforme interne nommée Borg. Cette plateforme est la « grande sœur » de Kubernetes et toute l'expérience acquise au fil des ans lors du développement de Borg a servi de fondation à la technologie Kubernetes.

Le saviez-vous ? Les sept rayons du logo Kubernetes font référence au nom d'origine du projet, « Project Seven of Nine ».

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 d'ailleurs devenu son deuxième contributeur principal. Google a fait don du projet Kubernetes en 2015 à la toute récente Cloud Native Computing Foundation.

Les véritables applications de production s'étendent sur plusieurs conteneurs, des conteneurs qui doivent être déployés sur différents hôtes serveur. La sécurité des conteneurs comporte plusieurs couches et peut être complexe. C'est précisément à ce niveau qu'intervient la technologie Kubernetes. Kubernetes vous offre les outils d'orchestration et de gestion requis pour déployer des conteneurs, à grande échelle, pour ces charges de travail. Les fonctionnalités d'orchestration de Kubernetes vous permettent de créer des services applicatifs 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 concrètes 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

Bien sûr, tout dépend de la manière dont vous utilisez les conteneurs dans votre environnement. Une application de conteneurs Linux rudimentaire les traite comme des machines virtuelles rapides et efficaces. Mais une fois que vous évoluez vers un environnement de production et multipliez le nombre d'applications, surgit le besoin de plusieurs conteneurs colocalisés qui fonctionnent ensemble pour fournir des services individuels. 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 d'un « pod ». 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 la charge 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 tels qu'Atomic Registry, Open vSwitch, Heapster, OAuth et SELinux, vous pouvez orchestrer l'ensemble de votre infrastructure de conteneurs.

Le principal avantage de la technologie Kubernetes, en particulier si vous cherchez à optimiser le développement des applications cloud-native, est qu'elle offre une plateforme dédiée à la planification et à l'exécution de conteneurs sur des clusters de machines physiques ou virtuelles. Autrement dit, elle vous aide à mettre en œuvre et à utiliser une infrastructure de conteneurs dans vos environnements de production. Kubernetes vise avant tout l'automatisation des tâches opérationnelles, c'est pourquoi cette technologie vous permet d'effectuer un grand nombre des tâches que d'autres plateformes d'applications et systèmes de gestion vous permettent déjà de faire, mais pour vos conteneurs.

Avec Kubernetes, vous pouvez :

  • orchestrer des conteneurs sur plusieurs hôtes ;
  • optimiser l'utilisation de votre matériel afin de maximiser les ressources requises pour l'exécution de vos applications d'entreprise ;
  • contrôler et automatiser les déploiements et mises à jour d'applications ;
  • monter et ajouter des systèmes de stockage pour exécuter des applications avec état ;
  • mettre à l'échelle des applications conteneurisées et leurs ressources à la volée ;
  • gérer des services de façon déclarative et garantir ainsi que les applications déployées s'exécutent toujours de la manière dont vous les avez déployées ;
  • vérifier l'intégrité de vos applications et les réparer automatiquement grâce au placement, au démarrage, à la réplication et à la mise à l'échelle automatiques.

Pour vous offrir des services orchestrés de qualité optimale, Kubernetes s'appuie sur d'autres projets. Ces projets Open Source complémentaires vous permettront de tirer pleinement parti de Kubernetes. Voici quelques-unes des pièces maîtresses de Kubernetes :

  • Registre : Atomic Registry ou Docker Registry
  • Réseau : Open vSwitch et routage périphérique intelligent
  • Télémétrie : Heapster, Kibana, Hawkular ou Elastic
  • Sécurité : LDAP, SELinux, RBAC et OAUTH avec les couches multi-clients
  • Automatisation : ajout de playbooks Ansible pour la gestion de l'installation et du cycle de vie du cluster
  • Services : catalogue riche en modèles d'applications populaires précréés

À l'instar de toute technologie, Kubernetes dispose d'une terminologie propre. Pour vous aider à mieux appréhender Kubernetes, voyons ensemble les termes les plus courants.

Maître : serveur qui contrôle les nœuds Kubernetes, sur lequel toutes les tâches sont assignées.

Nœuds : machines qui exécutent les tâches qui leur sont assignées. Ces nœuds sont contrôlés par le serveur maître Kubernetes.

Pod : groupe d'un ou de plusieurs conteneurs déployés sur un seul nœud. Tous les conteneurs d'un pod partagent une même adresse IP, un même IPC, un même nom d'hôte et d'autres ressources. Les pods séparent le réseau et le stockage du conteneur sous-jacent. Ainsi, vous pouvez déplacer vos conteneurs au sein du cluster très simplement.

Contrôleur de réplication : composant qui vérifie le nombre de copies identiques d'un pod qui doivent s'exécuter quelque part dans le cluster.

Service : élément qui dissocie les définitions de tâche des pods. Les proxies de service de Kubernetes transfèrent automatiquement les requêtes de service vers le pod pertinent, même si celui-ci a été précédemment déplacé ou remplacé.

Kubelet : service exécuté sur des nœuds qui lit les manifestes du conteneur pour s'assurer que les conteneurs définis ont démarré et fonctionnent.

kubectl : outil de configuration en ligne de commande de Kubernetes.

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 très ennuyé. Et vos clients de même.

C'est là que Red Hat OpenShift intervient. La solution OpenShift est une version de Kubernetes adaptée aux entreprises, mais pas seulement. OpenShift 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. Avec OpenShift, vos développeurs peuvent créer de nouvelles applications conteneurisées, les héberger et les déployer dans le cloud tout en bénéficiant d'une évolutivité, d'un contrôle et d'une orchestration d'une efficacité telle que vos idées pourront vite devenir réalité.

Cerise sur le gâteau : la solution OpenShift est prise en charge et développée par le leader de l'Open Source, Red Hat.

Quelle est la différence entre OpenShift et Kubernetes ?

Kubernetes diagram

Kubernetes s'exécute au-dessus d'un système d'exploitation (par exemple Red Hat Enterprise Linux Container Host) et interagit avec les pods de conteneurs qui s'exécutent sur les nœuds. Le serveur maître Kubernetes reçoit les commandes de la part d'un administrateur (ou d'une équipe DevOps) et relaie ces instructions aux nœuds qui lui sont subordonnés. Ce système de transfert fonctionne avec une multitude de services et choisit automatiquement le nœud le plus adapté pour chaque tâche. Il alloue ensuite les ressources aux pods désignés dans ce nœud pour qu'ils effectuent la tâche requise.

Aussi, du point de vue de l'infrastructure, la gestion des conteneurs reste très similaire à celle que vous connaissez. Vous contrôlez simplement les conteneurs à un niveau plus élevé et plus efficacement, sans avoir à gérer chaque conteneur ou nœud de manière individuelle. Certaines tâches manuelles vous incombent encore, mais il s'agit surtout d'assigner un serveur maître Kubernetes, de définir des nœuds et des pods.

Docker et Kubernetes

La technologie Docker continue de jouer son rôle. Lorsque Kubernetes planifie un pod dans un nœud, le kubelet de ce nœud ordonne à 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 sur le serveur maître. Docker transfère les conteneurs dans le nœud et démarre/arrête ces conteneurs, comme d'habitude. 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.

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

Red Hat OpenShift

Plateforme de conteneurs Kubernetes pour les entreprises qui automatise l'exploitation de toute la pile pour la gestion des déploiements multicloud, de clouds hybrides et d'edge computing.

Ressources

Liste de contrôle

Développement d'applications en conteneurs : 5 thèmes à aborder avec votre équipe

Fiche technique

Red Hat Advanced Cluster Management for Kubernetes

Fiche technique

Red Hat OpenShift : une technologie de conteneurs pour le cloud hybride

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

Illustration - mail

Ce type de contenu vous intéresse ?

Inscrivez-vous à notre newsletter Red Hat Shares.

Red Hat logo LinkedInYouTubeFacebookTwitter

Produits

Outils

Tester, acheter, vendre

Communication

À propos de Red Hat

Premier éditeur mondial de solutions Open Source pour les entreprises, nous fournissons des technologies Linux, cloud, de conteneurs et Kubernetes. Nous proposons des solutions stables qui aident les entreprises à jongler avec les divers environnements et plateformes, du cœur du datacenter à la périphérie du réseau.

Inscrivez-vous à la newsletter Red Hat Shares.

S'inscrire maintenant

Sélectionner une langue

© 2022 Red Hat, Inc. Red Hat Summit