Maison > Tutoriel système > Linux > le corps du texte

Quelle est exactement la raison de la grande popularité de Kubernetes ?

王林
Libérer: 2024-01-03 08:30:03
avant
1668 Les gens l'ont consulté
Présentation La plate-forme Kubernetes pour l'exécution de charges de travail conteneurisées joue un rôle important lors du développement et du déploiement d'applications cloud natives. Naturellement, le développement et le déploiement d’applications cloud natives sont devenus extrêmement populaires. Il y a des avantages évidents à un processus qui permet un déploiement rapide et une livraison continue de corrections de bugs et de nouvelles fonctionnalités, mais personne ne parle du problème de l’œuf et de la poule : comment y parvenir ? Construire l'infrastructure et les processus de développement à partir de zéro pour développer et maintenir des applications cloud natives est une tâche non triviale et longue.

Quelle est exactement la raison de la grande popularité de Kubernetes ?

Kubernetes est une plate-forme relativement nouvelle pour exécuter des charges de travail conteneurisées qui résout ces problèmes. Initialement un projet au sein de Google, Kubernetes a été offert à la Cloud Native Computing Foundation en 2015 et a attiré des développeurs de communautés open source du monde entier. Kubernetes est conçu sur la base des 15 années d'expérience de Google dans l'exploitation d'environnements de production et de développement. Puisqu’il est open source, n’importe qui peut le télécharger et l’utiliser et réaliser les avantages qu’il apporte.

Alors pourquoi Kubernetes a-t-il une si grosse surprise ? Je pense que cela constitue le meilleur équilibre entre les ressources d'une infrastructure en tant que service (IaaS) comme OpenStack et une plate-forme en tant que service (PaaS) complète, où la mise en œuvre du runtime sous-jacent est entièrement contrôlée par le fournisseur. Kubernetes offre deux avantages : une abstraction pour la gestion de l'infrastructure, ainsi que des outils et des capacités permettant de dépanner en profondeur dans le bare metal.

IaaS contre PaaS

OpenStack est généralement classé comme une solution IaaS, dans laquelle un pool de ressources physiques (telles que les processeurs, le réseau et le stockage) est alloué et partagé entre différents utilisateurs. Il utilise la virtualisation matérielle traditionnelle pour obtenir une isolation entre les utilisateurs.

L'API REST d'OpenStack permet la création automatisée d'infrastructures à l'aide de code, mais voici le problème. Les produits IaaS exportent également des infrastructures. Une fois créé, il n'existait pas beaucoup de moyens de service pour prendre en charge et gérer cette infrastructure supplémentaire. Dans la mesure où OpenStack produit l'infrastructure sous-jacente, telle que les serveurs et les adresses IP, cela devient une priorité de gestion. Un résultat bien connu est la prolifération des machines virtuelles (VM), mais il en va de même pour les réseaux, les clés de chiffrement et les volumes de stockage. De cette façon, les développeurs passent moins de temps à créer et à maintenir des applications.

Comme d'autres solutions basées sur des clusters, Kubernetes fonctionne au niveau du serveur individuel pour permettre une mise à l'échelle horizontale. Il facilite l'ajout de nouveaux serveurs et la planification instantanée des charges sur le nouveau matériel. De même, les serveurs peuvent être supprimés du cluster lorsqu'ils ne sont pas utilisés efficacement ou nécessitent une maintenance. Les autres tâches que Kubernetes peut gérer automatiquement sont les activités d'orchestration telles que la planification des tâches, la surveillance de l'état et le maintien de la haute disponibilité.

Le réseau est un autre domaine qui peut être difficile à orchestrer de manière fiable dans un environnement IaaS. La communication entre microservices via des adresses IP peut être délicate. Kubernetes implémente la gestion des adresses IP, l'équilibrage de charge, la découverte de services et l'enregistrement des noms DNS pour fournir un environnement réseau simple et transparent au sein du cluster.

Conçu pour le déploiement

Une fois que vous avez créé un environnement pour exécuter votre application, le déploiement est un jeu d'enfant. Déployer une application de manière fiable est une tâche plus facile à dire qu'à faire ; ce n'est pas la plus simple. Un énorme avantage de Kubernetes par rapport aux autres environnements est que les déploiements sont des citoyens de première classe.

Les applications peuvent être décrites et installées sur le cluster à l'aide d'une seule commande d'interface de ligne de commande (CLI) Kubernetes. Kubernetes permet l'intégralité du cycle de vie des applications, depuis le déploiement initial, le déploiement de nouvelles versions et la restauration en cas de panne d'une fonctionnalité critique. Les déploiements en cours peuvent également être suspendus et repris. Disposer d'outils intégrés prêts à l'emploi et d'une prise en charge du déploiement d'applications, plutôt que de devoir créer vous-même un système de déploiement, constitue un avantage à ne pas sous-estimer. Les utilisateurs de Kubernetes n’ont ni à réinventer la roue du déploiement d’applications ni à trouver cela une tâche ardue.

Kubernetes peut également surveiller l'état des déploiements en cours. Bien que vous puissiez écrire cette fonctionnalité de la même manière qu'un processus de déploiement dans un environnement IaaS, il s'agit d'une tâche très difficile et il existe de nombreux cas de ce type.

Conçu pour DevOps

Au fur et à mesure que vous gagnerez en expérience dans le développement et le déploiement d'applications Kubernetes, vous suivrez le même chemin que Google et d'autres qui vous ont précédé. Vous constaterez qu'il existe plusieurs fonctionnalités Kubernetes qui sont importantes pour le développement et le dépannage efficaces des applications multiservices.

Tout d’abord, la capacité de Kubernetes à inspecter facilement les services en cours d’exécution via des journaux ou SSH (shell sécurisé) est très importante. Avec un seul appel de ligne de commande, les administrateurs peuvent inspecter les journaux des services exécutés sous Kubernetes. Cela peut sembler une tâche simple, mais dans un environnement IaaS, ce n'est pas facile à moins d'avoir déjà effectué un certain travail. Les grandes applications disposent souvent de matériel et de personnel dédiés à la collecte et à l'analyse des journaux. La journalisation dans Kubernetes ne remplace peut-être pas une solution complète de journalisation et de métriques, mais elle suffit à fournir un dépannage de base.

Deuxièmement, Kubernetes fournit une gestion intégrée des clés. Un autre problème que connaissent les équipes qui ont développé leurs propres systèmes de déploiement à partir de zéro est qu'il est difficile de déployer en toute sécurité des données sensibles, telles que des mots de passe et des jetons API, sur des machines virtuelles. En faisant de la gestion des clés un citoyen de premier ordre, Kubernetes empêche vos équipes d'inventer leurs propres systèmes de distribution de clés non sécurisés et défectueux ou de coder en dur les informations d'identification dans les scripts de déploiement.

Enfin, Kubernetes dispose de fonctionnalités permettant d'automatiser la mise à l'échelle, l'équilibrage de charge et le redémarrage des applications. Encore une fois, ce sont des fonctionnalités que les développeurs devraient écrire eux-mêmes lorsqu'ils utilisent IaaS ou Bare Metal. La mise à l'échelle et les vérifications de l'état de votre application Kubernetes sont déclarées dans la définition du service, et Kubernetes garantit que le nombre correct d'instances s'exécute correctement.

Résumé

La différence entre les systèmes IaaS et PaaS est énorme et l'inclusion du PaaS peut permettre d'économiser beaucoup de temps de développement et de débogage. En tant que PaaS, Kubernetes implémente des fonctionnalités puissantes et efficaces pour vous aider à développer, déployer et déboguer des applications cloud natives. Son architecture et sa conception représentent des décennies d'expérience rare, et votre équipe bénéficie de cet avantage gratuitement.


À propos de l'auteur :

Tim Potter - Tim est ingénieur logiciel senior chez Hewlett Packard Enterprise. Il travaille sur des logiciels libres et open source depuis près de deux décennies, notamment sur des projets tels que Samba, Wireshark, OpenPegasus et Docker. Tim blogue sur https://elegantinfrastructure.com/ sur Docker, Kubernetes et d'autres sujets liés à l'infrastructure.


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:linuxprobe.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!