Kubernetes: le schéma qui m’explique 🧐

Préface

Pour parler de Kubernetes il faut forcément être familiariser avec la notion de Virtualisation et de containers.

Virtualisation

La virtualisation est un ensemble de technologies logicielles permettant aux applications logicielles de fonctionner sur du matériel virtuel (virtualisation via des machines virtuelles et un hyperviseur) ou des systèmes d’exploitation virtuels (virtualisation via des conteneurs). Notez que la virtualisation via des conteneurs est également appelée conteneurisation.

Container:

LXC, contraction de l’anglais Linux Containers, est un environnement d’exécution virtuel qui s’exécute sur un noyau de système d’exploitation unique et émule un système d’exploitation plutôt que le matériel sous-jacent,

Le conteneur fournit une virtualisation de l’environnement d’exécution (processeur, RAM, réseau, système de fichiers …) et non de la machine. Pour cette raison, on parle de “conteneur” et non de “machine virtuelle
Ensuite, il serait nécessaire de savoir qu’un conteneur est fortement connecté à un noyau, et soudainement, le conteneur ne sait pas ce qui se passe en dehors de ce noyau. C’est ainsi que Kubenetes intervient.

Définition

Kubernetes est un système open source qui vous permet d’exécuter des conteneurs, de les gérer, d’automatiser des déploiements, de les déployer, de créer et de configurer des entrées, de déployer des applications sans état ou avec état, et bien d’autres choses encore. 

Principalement compatible avec Docker, Kubernetes peut fonctionner avec n’importe quel système de container conforme au standard Open Container Initiative en termes de formats d’images et d’environnements d’exécution. De par son caractère open source, Kubernetes peut aussi être utilisé librement par n’importe qui, n’importe où.

Orchestration

L’orchestration des conteneurs consiste essentiellement à gérer le cycle de vie des conteneurs, en particulier dans les grands environnements dynamiques. Les équipes logicielles utilisent l’orchestration de conteneur pour contrôler et automatiser de nombreuses tâches:

  • Approvisionnement et déploiement de conteneurs
  • Redondance et disponibilité des conteneurs
  • Mise à l’échelle ou suppression des conteneurs pour répartir la charge d’application uniformément sur l’infrastructure hôte
  • Déplacement de conteneurs d’un hôte à un autre s’il y a un manque de ressources dans un hôte ou si un hôte meurt
  • Répartition des ressources entre les conteneurs
  • Exposition externe de services fonctionnant dans un conteneur avec le monde extérieur
  • Équilibrage de charge de la découverte de service entre conteneurs
  • Surveillance de la santé des conteneurs et des hôtes
  • Configuration d’une application en fonction des conteneurs qui l’exécutent

Le developper dans tout ça ?

Avec Kubernetes, le développeur n’a plus à gérer  des machines virtuelles, il dispose directement de son environnement d’exécution (le conteneur) pour déployer son code et c’est kubernetes qui gère les couches de l’infrastructure sous-jacente.

Kubernetes : les dessous du système

Voyons un peu en détail c’est quoi les composants principaux de l’architecture kubernetes.

Le cluster

ensemble de nœuds avec au moins un nœud maître et plusieurs nœuds de travail (parfois appelés minions) pouvant être des machines virtuelles ou physiques.


Kubernetes master

Le master gère la planification et le déploiement des instances d’application sur les nœuds, et l’ensemble complet des services exécutés par le nœud maître est appelé plan de contrôle. Le maître communique avec les nœuds via le serveur d’API Kubernetes. Le planificateur affecte des nœuds à des pods (un ou plusieurs conteneurs) en fonction des contraintes de ressources et de règles que vous avez définies.

le Kubelet

Kubelet. Chaque nœud Kubernetes exécute un processus agent appelé kubelet qui est chargé de gérer l’état du nœud: démarrage, arrêt et maintenance des conteneurs d’application en fonction des instructions du plan de contrôle. Un kubelet reçoit toutes ses informations du serveur API Kubernetes.

Plus haut, on cite le Pod, Voyons en détail ce qu’il y a derrière 🧐:

Le pod

petit rappel, de base on a un environnement d’exécution, Là-dessus on peut déployer un ou plusieurs conteneurs, cet environnement d’exécution sera appellé ici Pod, Dans ce Pod, on pourra alors rassembler tous les containers Qui partageront les mêmes données, Et oui tous Les containers de ce POD Partagerons des éléments comme des adresses IP, les mêmes numéros de ports, et autres informations réseaux. Du coup,

Toutes ces informations précieuses, Dans quelle cavité il faudrait les stocker ? C’est à ce niveau là qu’intervient le volume.

le volume

Le volume c’est tout simplement un espace commun de sauvegarde, Que partage, tous les containers qui se trouvent dans un même pod. Ses principales fonctions sont: Garantir la disponibilité des données, Pendant et après l’exécution d’un containers et aussi garantir le partage de données entre deux containers qui tournent au sein d’un même Pod.

conteners, pod, node ? 😥 comment gère t’on ?

Les services nous seront d’une grande utilité.

Les services nous facilite la gestion, en regroupant les containers identiques. ici on peut constater Un service Front-end avec le “serveur Web” est un service “Back-end” avec la base de données.

A tout service sera asigné un nom de domaine et une adresse IP, Et à travers ceci kubernetes nous permet de repartir la charge du trafic entre les diffents pods. Le noeud le plus adapté pour une tâche sera automatique choisi pour l’exécuter.

Kubernetes: on notera enfin


Des nombreux avantages de kubernetes, on soulignera que l’automatisation de certaines tâches reste un atout majeur.

Le Master kubernetes, directement contrôlé par l’administrateur ou l’équipe Dev, Reçoit des directives et Relaye ces directives au node, Du coup automatiquement le noeud le plus adapté pour un service donnée sera appelé pour l’exécuter.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

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