Kubernetes est un système open source pour la gestion des applications dans un environnement de conteneur technologique. Kubernetes automatise les processus manuels de déploiement et de mise à l'échelle des applications conteneurisées. Vous pouvez également gérer des pools d'applications conteneurisées, qui peuvent s'étendre sur des clouds publics, privés et hybrides. Le nom, Kubernetes, s'inspire de l'analogie avec le porte-conteneurs et s'en base pour indiquer le mot grec qui se traduit par "timonier", comme dans celui dont vous avez besoin pour piloter le porte-conteneurs. Kubernetes est également appelé "kube" et "k8s", qui est un nombre, utilisant la première lettre, la dernière lettre et le nombre de lettres entre ces lettres.
Histoire des kubernetes
Outre l'étiologie des mots, Kubernetes a été créé à l'origine par Google car il est né d'un projet interne Borg, avec des conteneurs alimentant la technologie Google Cloud. En fait, Google prétend avoir une expérience des conteneurs depuis plus de quinze ans, et prétend "exécuter des milliards de conteneurs par semaine", ce qui leur a donné beaucoup d'expérience avec ce logiciel. Kubernetes a été donné à la Linux Foundation en tant que technologie de démarrage, pour former la Cloud Native Computing Foundation (CNCF) en 2015. Bien que Kubernetes soit un projet open source, il est officiellement pris en charge par Microsoft Azure et Google Cloud. Kubernetes a été initialement accepté par les premiers utilisateurs, ce qui a entraîné une croissance régulière et occupe désormais une position de leader dans l'espace des logiciels de gestion de conteneurs. De nos jours, l'utilisation de plusieurs conteneurs pour une véritable application de production est devenue courante, les conteneurs étant répartis sur plusieurs serveurs. Le logiciel Kubernetes permet à ces conteneurs d'être déployés et mis à l'échelle sur plusieurs serveurs pour correspondre à la charge de travail, y compris la planification des conteneurs dans un cluster. Cela peut également aider à gérer la santé de ces multiples conteneurs. (Crédit d'image: Pixabay)Déploiement de Kubernetes
Kubernetes est déployé pour un groupe de conteneurs, appelé cluster. L'un des conteneurs du cluster est désigné comme maître de cluster, qui exécute les processus du plan de contrôle Kubernetes. Les autres conteneurs du cluster sont affectés en tant que nœuds, qui sont les ordinateurs subordonnés, relevant du maître du cluster, qui fonctionne comme un point de terminaison unifié. Le maître du cluster a le contrôle total de ses nœuds, désignant leur cycle de vie, y compris l'évaluation de l'état de santé, ainsi que le contrôle de la mise à niveau et de la réparation pour chaque nœud. Dans le cluster, il peut y avoir des conteneurs spéciaux, qui sont désignés comme agents par nœud avec des fonctions spécifiques, par exemple, la collecte de journaux ou la connectivité réseau au sein du cluster. La valeur par défaut d'un nœud est d'avoir un processeur virtuel et 3.75 Go de RAM, qui est le type de machine Compute Engine standard. Pour les tâches plus intensives en calcul, une plate-forme CPU minimale de base plus élevée peut être choisie. Notez que toutes les ressources de nœud ne peuvent pas être utilisées par l'application pour laquelle elles sont conçues. Au contraire, certaines de ces ressources sont nécessaires pour exécuter le moteur Kubernetes. Les ressources allouables du nœud, qui peuvent être utilisées pour exécuter l'application, correspondent à la différence entre les ressources totales et la quantité réservée au moteur Kubernetes. Par exemple, si le nœud dispose de 4 Go de RAM disponibles, 25 % sont réservés au moteur Kubernetes, et les 75 % restants peuvent être utilisés pour exécuter l'application et ne nécessitent que 20 % des 4 Go de RAM suivants si le nœud dispose d'un total de 8 Go de RAM. Le moteur Kubernetes utilise moins de ressources CPU, ne réservant que 6 % de la puissance de traitement au premier cœur du nœud et seulement 1 % à un second cœur désigné pour le nœud. Le maître de cluster exécute le serveur d'API Kubernetes, qui gère les demandes d'appels d'API Kubernetes à partir du logiciel Kubernetes. Le serveur d'API Kubernetes fonctionne comme le "hub" pour l'ensemble du cluster de conteneurs.Fonctionnalités de Kubernetes
Son ensemble de fonctionnalités robustes contribue à la popularité de Kubernetes. Ceux-ci inclus:- Emballage automatique - Cela automatise le placement des conteneurs en fonction de l'utilisation la plus efficace des ressources.
- Mise à l'échelle horizontale - Les applications peuvent être augmentées ou réduites à l'aide d'une seule commande ou automatisées pour correspondre à l'utilisation du processeur.
- Déploiements et restaurations automatisés: Kubernetes déploie les mises à jour des applications par étapes, plutôt que toutes en même temps, et surveille les problèmes d'intégrité, et s'il est détecté, il est automatiquement restauré vers une version plus stable pour préserver la disponibilité.
- Orchestration du stockage - Fonctionne avec une variété de solutions de stockage pour une flexibilité supplémentaire, du cloud local au cloud public.
- Auto-guérison: la capacité de tuer les conteneurs qui gèlent et de réinitialiser les conteneurs qui gèlent ou échouent à leur vérification de santé.
- Découverte de service et équilibrage de charge: Kubernetes peut attribuer à chaque conteneur sa propre adresse IP, avec un nom DNS, et la possibilité de répartir la charge entre eux.
- Gestion de la confidentialité et de la configuration: les applications peuvent être mises à jour sans reconstruction d'image.
- Exécution par lots: gestion de la charge de travail par lots et intégration continue.