top of page
Photo du rédacteurSandra Bocciolini

Découvrir Kubernetes

Dernière mise à jour : 28 avr. 2020



Découvrir Kubernetes

Le mot Kubernetes est de plus en plus populaire dans l’univers informatique. Mais de quoi s‘agit-il ? Dans cet article, je vous propose de découvrir Kubernetes en passant en revue le fonctionnement de cette technologie, ses différents composants, et les avantages qu’elle peut apporter aux entreprises.

Problématique de gestion des conteneurs

Déployer une application en production est une procédure complexe qui prend du temps aux entreprises.Depuis l’avènement de la méthode des conteneurs, le déploiement d’applications est grandement facilité pour les entreprises dans le domaine du développement logiciel.

En effet, un conteneur est une boîte virtuelle qui rassemble en un seul endroit une application et ses dépendances, autrement dit tout l’environnement d’exécution d’une application, avec notamment ses fichiers source, ses librairies, sa mémoire vive, son processeur, etc...

Contrairement à la technologie antérieure appelée virtualisation et basée sur des machines virtuelles (VM), les conteneurs ne possèdent pas leur propre système d’exploitation (OS). Ils prennent donc moins de place que les VM sur un serveur. Par ailleurs, ces conteneurs sont directement prêts à être déployés sur n’importe quel serveur, et à s’adapter au système d’exploitation de ce serveur (OS hôte). On parle alors d’application conteneurisée. Docker est un exemple de système fonctionnant sur des conteneurs virtuels.

Néanmoins, suite à l’apparition des applications conteneurisées, de nouvelles questions se posent : Comment gérer plusieurs conteneurs ? Comment les coordonner entre eux ? Peut-on encore optimiser cette technologie et faciliter davantage le déploiement d’applications en production ? Pour pallier à ces problématiques, il existe ce qu’on appelle des orchestrateurs de conteneurs, permettant l’organisation de tous les composants.

Kubernetes : outil d’orchestration de conteneurs

Créé à l’origine par Google en 2015, Kubernetes a été donné à Cloud Native Computing Foundation et est maintenant disponible en open source. Cette technologie répond directement à la problématique de management des conteneurs.

En effet, il s’agit d’un orchestrateur de conteneurs, autrement dit d’un outil qui permet de gérer, d’exécuter, et de coordonner les conteneurs sur différents serveurs hôtes, de manière automatique. Kubernetes constitue ainsi une surcouche au système de conteneurs qui se place au-dessus de l’OS.

Il peut, par ailleurs, être utilisé en complément de Docker. Bien que d’autres orchestrateurs de conteneurs soient présents sur le marché (Docker Swarm, Apache Mesos), Kubernetes prend le lead de par sa renommée auprès des développeurs.

Architecture Kubernetes : présentation des composants essentiels

Pour pouvoir orchestrer efficacement les conteneurs, l’architecture interne de Kubernetes est constituée de plusieurs composants essentiels :

• Un ou plusieurs conteneurs sont contenus dans des pods. Les pods sont les composants les plus petits dans l’architecture Kubernetes. Ils correspondent à l’environnement d’exécution des applications conteneurisées. Par ailleurs, les conteneurs compris dans un même pod partagent les ressources de ce pod (adresse IP, volume…).

• Les pods sont exécutés par des nœuds ou nodes. Ces nodes sont des machines, virtuelles ou physiques, qui peuvent prendre en charge l’exécution d’un ou plusieurs pods. Par ailleurs, chaque node intègre également un kubelet, qui surveille constamment son statut.

• Enfin, les nodes sont contrôlés par le master Kubernetes. Ce master a un rôle central dans la coordination de tous les éléments du cluster. Dans un premier temps, il reçoit les ordres de la part de l’administrateur. Dans un second temps, il fait le point sur les ressources disponibles grâce aux informations envoyées par les kubelets. Selon ce paramètre, le master va transmettre les instructions au node le plus approprié grâce à des services, pour pouvoir exécuter un pod.

Cette architecture et ce fonctionnement basés sur la disponibilité des ressources présentent de nombreux avantages. Par exemple, si un node meurt, Kubernetes peut exécuter un pod dans un autre node selon les disponibilités. De plus, la répartition des tâches est optimisée de manière à ce que la charge de travail ne dépasse pas la limite des ressources disponibles.

Avantages concrets de Kubernetes pour les développeurs

La technologie Kubernetes vise à faciliter le travail des développeurs de logiciels et des administrateurs système. Grâce à Kubernetes, les professionnels de l’informatique n’ont en effet plus à penser à l’infrastructure profonde lorsqu’ils développent le code de leur application, et se focalisent sur la programmation à l’échelle du conteneur.

L’assignation des tâches aux différents nodes n’a donc plus besoin d’être effectuée manuellement par le développeur, mais est directement prise en charge par la plateforme Kubernetes. De même, tout le déploiement et la synchronisation des éléments sont réalisés par Kubernetes.

Pour les entreprises, ne pas se soucier de la partie infrastructure représente un gain de temps non négligeable. En effet, une bonne partie des tâches est automatisée. Le challenge se concentre alors principalement sur la définition de la fonction du système à développer, et la manière dont ce système va répondre à la problématique du client. De même, le déploiement d’application depuis le stade de développement jusqu’au stade de production est accéléré. Ainsi, la méthode de conteneurisation, alliée à la technologie Kubernetes, devient de plus en plus populaire pour les entreprises.

En savoir plus sur notre formation Kubernetes, Mise en oeuvre

En savoir plus sur notre formation Maîtriser Docker

Ressources supplémentaires pour mieux comprendre Kubernetes :


169 vues0 commentaire
bottom of page