Introduction à Kubernetes l’orchestrateur de conteneurs

De plus en plus d’applications modernes sont construites à l’aide de conteneurs, qui sont des microservices packagés avec leurs dépendances et leurs configurations. Kubernetes est un logiciel open-source qui permet de déployer et de gérer ces conteneurs à l’échelle.

Dans cet article, nous présenterons Kubernetes, les motivations de cette solution (Pourquoi Kubernetes ?) , certains concepts de base et son architecture.

Qu’est-ce que Kubernetes ?

Kubernetes (communément appelé « K8s ») est un système open source qui vise à fournir une « plate-forme permettant d’automatiser le déploiement, la montée en charge et la mise en œuvre de conteneurs d’application sur des clusters. Il fonctionne avec toute une série de technologies de conteneurisation, et est souvent utilisé avec Docker. Il a été conçu à l’origine par Google, puis offert à la Cloud Native Computing Foundation.

Comme dit plus haut, Les conteneurs peuvent être définis comme des logiciels dans lesquels le code est packagé, avec ses bibliothèques et dépendances, de manière commune afin qu’il puisse être exécuté n’importe où, sur un ordinateur de bureau ou même dans le cloud.

Les conteneurs sont assez légers , rapides et portables car, contrairement à une machine virtuelle, les conteneurs n’ont pas besoin d’inclure un système d’exploitation dans chaque instance et peuvent, au lieu de cela, simplement exploiter les fonctionnalités et les ressources du système d’exploitation de la machine hôte.

Docker est par exemple une solution de conteneurisation (voir notre article sur docker

Containers Kubernetes

Bien que les conteneurs soient un bon moyen de packager et d’exécuter des applications. Dans un environnement de production, il faut s’assurer du bon fonctionnement de ces conteneurs, et ça devient assez complexe lorsqu’il faut gérer des dizaines, voire des centaines de conteneurs. C’est là que Kubernetes rentre en jeu.

Pourquoi Kubernetes ?

Kubernetes permet donc de gérer ses conteneurs de façon résiliente et distribuée. Il s’assure du bon fonctionnement des conteneurs , de la communication entre les conteneurs et même il permet de faire de l’autoscaling.

Prenons l’exemple d’une architecture d’une application web utilisant une base de données et une api (on considère que chaque composant est déployé dans un conteneur). 

Que se passe-t-il si un de ces composants n’est plus fonctionnel : une solution serait de le redémarrer où recréer le composant…

ou même qu’on ait un grand nombre d’utilisateurs qui accèdent à notre application en même temps ? On pourrait par exemple créer plusieurs instances de nos différents conteneurs afin d’absorber la charge…

 Et si on pouvait le faire de manière AUTOmatique? … ? Les réponses à ces questions diverses et variées sont donc au cœur de la proposition de valeur de Kubernetes.

L’architecture utilisée pour l’orchestration de conteneurs

L’architecture d’orchestration de conteneurs offerte par k8s est sous forme de cluster . De façon générale, un cluster Kubernetes est composé de deux parties le control plane et les machines de calcul appelés aussi noeuds. Un noeud peut être une machine virtuelle ou une machine physique. Et chaque noeud fait tourner des pods (on peut le voir comme un environnement dans lesquels seront exécutés nos fameux conteneurs)

Kubernetes infrastructure

Nous n’allons pas dans cet article, présenter tous les composants de Kubernetes, cependant nous allons présenter plus en détail le rôle du control plane et des noeuds (compute machines).

Le control plane

C’est le serveur ou se trouve les composants Kubernetes qui contrôlent le cluster, ainsi que des données sur l’état et la configuration du cluster. Ces composants de base effectuent le travail important consistant à s’assurer que les conteneurs fonctionnent en nombre suffisant et avec les ressources nécessaires.

Les noeuds

Vous pouvez voir les noeuds comme des machines ou seront déployés vos conteneurs. En effet, un noeud pour un cluster kubernetes peut être vu comme un ensemble de ressources CPU et RAM qui peuvent être utilisées. Ainsi, n’importe quelle machine de calcul peut remplacer n’importe quelle autre machine de calcul dans un cluster Kubernetes.Aussi, pour fonctionner le cluster k8s a besoin d’a mimina un noeud de calcul.

Conclusion

Dans cet article nous, avons présenté briévement la solution d’oschestration de conteneurs Kubernetes. Nous avons vu quelle apporte des outils pour pallier pas mal de problèmes dans la gestion des conteneurs. Dans un prochain article, nous présenterons plus en détail les différents composants de Kubernetes. Avez-vous déjà utilisé Kubernetes ? Ou des questions sur k8s ? N’hésitez pas à poser des questions !

Sources

Kubernetes Overview – Microsoft

What’s Kubernetes

Kubernetes Wikipedia

Containers IBM Cloud

Laisser un commentaire

Votre adresse email ne sera pas publiée.

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Voulez-vous en savoir plus sur la Data Science ?

Inscrivez-vous alors à notre newsletter et vous receverez gratuitement nos derniers articles et actualités ! 
S'INSCRIRE MAINTENANT 
close-link