Chapitre 1. Aperçu de Kubernetes
Kubernetes est un outil d'orchestration de conteneurs open source développé par Google. Kubernetes permet d'exécuter et de gérer des charges de travail basées sur des conteneurs. Le cas d'utilisation le plus courant de Kubernetes est le déploiement d'un ensemble de microservices interconnectés, construisant une application de manière native dans le nuage. Vous pouvez créer des clusters Kubernetes qui peuvent s'étendre sur des hôtes dans des clouds sur site, publics, privés ou hybrides.
Traditionnellement, les applications étaient déployées sur un seul système d'exploitation. Avec la virtualisation, vous pouvez diviser l'hôte physique en plusieurs hôtes virtuels. Travailler avec des instances virtuelles sur des ressources partagées n'est pas optimal en termes d'efficacité et d'évolutivité. Étant donné qu'une machine virtuelle (VM) consomme autant de ressources qu'une machine physique, la fourniture de ressources à une VM, telles que l'unité centrale, la mémoire vive et l'espace de stockage, peut s'avérer coûteuse. En outre, vous risquez de voir les performances de votre application se dégrader en raison de l'utilisation d'instances virtuelles sur des ressources partagées.
Figure 1.1. Évolution des technologies de conteneurs pour les déploiements classiques
Pour résoudre ce problème, vous pouvez utiliser des technologies de conteneurisation qui séparent les applications dans un environnement conteneurisé. À l'instar d'une machine virtuelle, un conteneur possède son propre système de fichiers, son vCPU, sa mémoire, son espace de traitement, ses dépendances, etc. Les conteneurs sont découplés de l'infrastructure sous-jacente et sont portables à travers les nuages et les distributions de systèmes d'exploitation. Les conteneurs sont par nature beaucoup plus légers qu'un système d'exploitation complet et sont des processus isolés légers qui s'exécutent sur le noyau du système d'exploitation. Les VM sont plus lentes à démarrer et constituent une abstraction du matériel physique. Les VM s'exécutent sur une seule machine à l'aide d'un hyperviseur.
Vous pouvez effectuer les actions suivantes en utilisant Kubernetes :
- Partage des ressources
- Orchestrer les conteneurs sur plusieurs hôtes
- Installation de nouvelles configurations matérielles
- Exécution de contrôles de santé et d'applications d'autoréparation
- Mise à l'échelle des applications conteneurisées
1.1. Composants Kubernetes
Composant | Objectif |
---|---|
| S'exécute sur chaque nœud du cluster et maintient le trafic réseau entre les ressources Kubernetes. |
| Régit l'état de la grappe. |
| Attribue des modules aux nœuds. |
| Stocke les données de la grappe. |
| Valide et configure les données pour les objets API. |
| S'exécute sur les nœuds et lit les manifestes des conteneurs. S'assure que les conteneurs définis ont démarré et sont en cours d'exécution. |
|
Permet de définir la manière dont vous souhaitez exécuter les charges de travail. Utilisez la commande |
Nœud | Le nœud est une machine physique ou une VM dans un cluster Kubernetes. Le plan de contrôle gère chaque nœud et planifie les pods sur les nœuds du cluster Kubernetes. |
durée d'exécution du conteneur | exécute des conteneurs sur un système d'exploitation hôte. Vous devez installer un moteur d'exécution de conteneur sur chaque nœud pour que les pods puissent s'exécuter sur le nœud. |
Stockage permanent | Stocke les données même après l'arrêt de l'appareil. Kubernetes utilise des volumes persistants pour stocker les données de l'application. |
| Stocke les images des conteneurs et y accède. |
Cosse | Le pod est la plus petite unité logique de Kubernetes. Un pod contient un ou plusieurs conteneurs à exécuter dans un worker node. |