Kubernetes est un système de gestion de conteneurs open-source développé par Google. Il permet de déployer et de gérer les applications tourant sur plusieurs nodes d’un cluster. Kubernetes est devenu l’un des systèmes de gestion de conteneurs les plus populaires pour les applications cloud-native.
Pour lire cet article en Anglais cliquer ici.
Architecture de kubernetes
Les éléments de l’architecture de kubernetes travaillent ensemble pour gérer les applications distribuées. En Voici es principaux :
– Les nodes :
Les nodes sont des machines physiques ou virtuelles dans lesquels tournent les conteneurs d’une application. Il existe deux types de nodes dans Kubernetes: le Master et les workload. Les workloads hostent les les conteneurs des applications, tandis que le master contrôle et gère les pods et prend les décisiion global du cluster ( par exemple le scheduling, redémarrage des pods en cas de panne …).
Les Pods :
Un pods est la plus petite unité d’une application Kubernetes. Il peut contenir un ou plusieurs conteneurs. Ce sont les pods qui tournent sur les worloads.
Les Services :
Les services permettent de connecter les pods entre eux et de les rendre accessibles depuis l’extérieur du cluster.
Les Déploiements :
Les déploiements permettent de gérer les mises à jour et les rollbacks des applications. Les déploiements créent et gèrent les pods et les services nécessaires à une application, et peuvent être configurés pour mettre à jour les pods de manière progressive pour minimiser les downtime.
Le scheduler :
Le scheduler est un des composants de Kubernetes qui est responsable de mettre les pods sur les worloads. Il s’assure que les pods sont déployés de manière équilibrée sur les nodes du cluster et que les ressources sont utilisées de manière optimale.
Je vous invite à jeter un coup d’oeil sur cet article pour mieux comprendre le principe du scheduling.
Comment fonctionne ?
Il utilise un ensemble de concepts clés pour gérer les applications distribuées. Ces concepts comprennent les nodes, les pods, les services et les déploiements.
Commençons par examiner les nodes
, qui sont des machines physiques ou virtuelles qui exécutent les conteneurs d’une application. Alors que les pods sont l’unité de déploiement de base de Kubernetes qui peut contenir un ou plusieurs conteneurs. Les services permettent de connecter les pods entre eux et de les rendre accessibles depuis l’extérieur du cluster. Les déploiements permettent de gérer les mises à jour et les rollbacks des applications.
Kubernetes utilise également des outils de planification pour s’assurer que les applications sont déployées de manière équilibrée sur les nœuds du cluster et que les ressources sont utilisées de manière optimale.
Avantages de Kubernetes
Scalabilité: Kubernetes facilite le déploiement de nouvelles instances d’une application pour répondre à la demande croissante.
Haute disponibilité: Kubernetes peut gérer automatiquement les erreurs et les pannes de nœuds, pour s’assurer que les applications restent disponibles.
Portabilité: Les applications déployées sur Kubernetes peuvent être déplacées facilement entre différents environnements, tels que les datacenters et les clouds publics.
Automatisation: Kubernetes automatise de nombreux processus de gestion d’application, comme les mises à jour et les rollbacks, ce qui permet de se concentrer sur le développement de l’application elle-même.
7zip: 9 Commandes utiles de les plus utilisés
Migrer CentOS 7 vers Rocky Linux 9
Comment installer Docker sur Rocky Linux 9
Mis en place d’un cluster kubernetes avec kubeadm
Fail2Ban : How to protect Linux services