Recherche de site Web

Qu’est-ce que Kubernetes ?


Kubernetes (prononcé « CUBE-A-NET-IS ») est une plateforme open source qui permet de gérer des applications conteneurisées telles que Docker. Que vous cherchiez à automatiser ou à faire évoluer ces conteneurs sur plusieurs hôtes, Kubernetes peut accélérer le déploiement. Pour ce faire, il peut utiliser des composants internes tels que l'API Kubernetes ou des extensions tierces qui s'exécutent sur Kubernetes.

Cet article vous aidera à comprendre les concepts de base de Kubernetes et pourquoi il provoque un tel changement sismique sur le marché des serveurs, avec des fournisseurs ainsi que des fournisseurs de cloud, tels qu'Azure et Google Cloud, proposant des services Kubernetes.

Kubernetes : un bref historique

Kubernetes est l'un des cadeaux de Google à la communauté open source. La plate-forme de conteneurs faisait partie de Borg, un projet interne de Google depuis plus d'une décennie. Borg permet à Google de gérer des centaines, voire des milliers de tâches (appelées « Borglets ») à partir de différentes applications sur des clusters. Son objectif était d'utiliser efficacement les machines (et les machines virtuelles) tout en garantissant une haute disponibilité des fonctionnalités d'exécution.

La même architecture était populaire auprès d'autres entreprises cherchant des moyens d'assurer efficacement une haute disponibilité. Quelque part en 2015, dès la sortie de Kubernetes 1.0, Google a abandonné le contrôle de la technologie. Kubernetes s'appuie désormais sur une fondation appelée Cloud Native Computing Foundation (CNCF), qui elle-même fait partie de la Linux Foundation.

Comment fonctionne Kubernetes

Empruntant les idées du projet Borg, les « Borglets » ont cédé la place aux « pods », qui sont des unités de planification abritant les conteneurs. Essentiellement, ils ont des adresses IP individuelles qui entrent en jeu chaque fois qu’un conteneur nécessite du processeur, de la mémoire ou du stockage.

Les pods garantissent une haute disponibilité en équilibrant la charge du trafic dans un format round-robin. De plus, ils se trouvent à l’intérieur de machines (ou machines virtuelles) appelées « nœuds de travail », également appelés « serviteurs ». À partir de ce point, un « nœud maître » contrôle l'ensemble du cluster en orchestrant la conteneurisation à l'aide de l'API Kubernetes. Docker est capable de s'exécuter sur chaque nœud de travail où il peut télécharger des images et démarrer des conteneurs.

Pour obtenir la connexion API sur un cluster Kubernetes, une syntaxe CLI appelée kubectl est utilisée. Il s'agit d'une commande très importante car elle exécute à elle seule toutes les instructions que le nœud maître sert aux nœuds de travail. Maîtriser Kubectl nécessite un peu d'apprentissage, mais une fois que vous aurez appris, vous pourrez commencer à utiliser les clusters Kubernetes. Kubernetes ainsi que Docker sont écrits dans le langage de programmation Go.

Applications

Kubernetes peut réduire considérablement les coûts des serveurs et des centres de données grâce à sa grande efficacité dans l'utilisation des machines. Certaines des applications courantes de Kubernetes incluent :

  • Gestion des serveurs d'applications. La plupart des serveurs d'applications nécessitent une sécurité, une gestion de la configuration, des mises à jour, etc., qui peuvent s'exécuter à l'aide de Kubernetes.
  • Déploiements et restaurations automatiques. Avec Kubernetes, vous n'avez pas à vous soucier des déploiements ou des restaurations de produits sur plusieurs nœuds finaux.
  • Déploiement d'applications sans état. Les applications Web sont désormais contrôlables à distance. Par exemple, Kubernetes peut vous aider à exécuter des serveurs Nginx à l'aide d'un déploiement d'applications sans état.
  • Déploiement d'applications avec état. Kubernetes peut exécuter une base de données MySQL.
  • Stockage des objets API. Pour différents besoins de stockage, Kubernetes garantit un stockage idéal car il utilise les principes des conteneurs.
  • Prêt à l'emploi. Kubernetes est très utile dans les applications prêtes à l'emploi telles que la découverte de services, la journalisation, la surveillance et l'authentification.
  • Applications IoT. Kubernetes est de plus en plus utilisé dans l'IoT en raison de sa capacité d'évolutivité massive.
  • Courez n'importe où. Vous pouvez exécuter Kubernetes n’importe où, y compris dans une valise.

En résumé

L'objectif de Kubernetes est d'utiliser les ressources informatiques au maximum. Étant donné que vous pouvez orchestrer des conteneurs sur plusieurs hôtes, les nœuds finaux n'auront jamais de problèmes ou de pannes de ressources. Cela permet d'évoluer automatiquement car vous ne devez donner la commande qu'une seule fois à partir du nœud maître, et faire évoluer les applications est tout simplement révolutionnaire.

Pour en savoir plus sur Kubernetes, visitez son site officiel qui contient des tutoriels.

Crédit image : Oskar Casquero

Articles connexes