Qu'est-ce que Kubernetes? | La comparaison

Qu'est-ce que Kubernetes? | La comparaison
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.

Des conteneurs d'expédition

(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:

Applications réelles Kubernetes

Kubernetes est utilisé par de grandes entreprises telles que Comcast, eBay, Goldman Sachs, The New York Times et Pokemon Go, entre autres. Un exemple d'utilisation de Kubernetes est le fournisseur de vidéo Sling TV, qui, après son lancement en 2015, a rencontré des problèmes lorsque de nouveaux abonnés dépassaient ses ressources existantes lorsqu'ils tentaient de distribuer la télévision en direct sur Internet. Pour améliorer leur expérience client et pour plus de flexibilité, aujourd'hui et demain, ils ont décidé de passer à une stratégie de cloud hybride. Il utilisait un centre de données multisite VMWare sur site, intégré à plusieurs clouds publics et contrôlé via le moteur Kubernetes. Selon Brad Linder, leur évangéliste natif et Big Data chez Sling TV, "Nous sommes arrivés à l'endroit où nous pouvons en un seul clic déployer un centre de données complet : le réseau pour calculer, enregistrer et surveiller toutes les applications." soulignant que le déploiement d'une nouvelle application prenait auparavant des jours, ce qui peut maintenant être accompli en une heure environ via le moteur Kubernetes. Si Kubernetes a des origines modestes en tant que projet interne à Google, il est devenu un acteur dominant dans les logiciels de gestion de conteneurs, sans doute aidé par son approche open source. La puissance et la flexibilité du moteur Kubernetes expliquent pourquoi il est utilisé dans de nombreuses industries diverses.