Qu'est-ce que Kubernetes ?

Par IBM Services

Orchestrez et déployez des applications conteneurisées dans n'importe quel environnement

Kubernetes est une solution open source qui automatise le déploiement, la mise à l'échelle et la surveillance des applications conteneurisées.

Un conteneur est un logiciel qui est séparé de son infrastructure sous-jacente. Avec des conteneurs, tout est virtualisé au niveau du système d'exploitation. En d'autres termes, peu importe où une application est exécutée, elle fonctionnera de la même manière.

Aujourd'hui, la plupart des conteneurs s'exécutent sur une plateforme Kubernetes. Selon l'organisation : « Kubernetes fournit un environnement de gestion axé sur les conteneurs. Il orchestre les infrastructures de calcul, de mise en réseau et de stockage pour le compte des applications des utilisateurs, et garantit une portabilité entre les fournisseurs d'infrastructure. » ⁽¹⁾

Fondamentaux de Kubernetes

Kubernetes a fait ses débuts chez Google, où une équipe d'ingénieurs a développé un système de gestion de clusters nommé Borg. En 2014, la société a introduit une version open source de Borg appelée Kubernetes.⁽²⁾

La première version de Kubernetes a été publiée en 2015 afin d'offrir la possibilité d'orchestrer des conteneurs pour les applications distribuées. Parallèlement à cette publication, Google s'est associé à la Linux Foundation pour former la Cloud Native Computing Foundation (CNCF), et a proposé Kubernetes comme technologie de base.⁽³⁾

Kubernetes est devenu de plus en plus populaire en raison de sa portabilité entre systèmes basés sur la technologie de conteneurs. Avec plus de 1 400 contributeurs, la communauté open source de Kubernetes est aujourd'hui l'une des plus grandes au monde.

Docker est la technologie de conteneurs la plus couramment utilisée, mais Kubernetes prend également d'autres technologies en charge. Docker a défini des modèles pour conditionner les logiciels dans des unités normalisées incluant tous les éléments requis pour exécuter une application.

Kubernetes orchestre l'environnement de conteneurs – tout en optimisant l'utilisation et l'espace du serveur. Il gère où et comment les conteneurs sont déployés à l'aide de fonctionnalités telles que la planification intelligente, l'équilibrage de charges, l'évolutivité, la gestion du stockage et l'exécution par lots.

Quelques concepts clés :

  • L'unité de gestion de base de Kubernetes est un pod, à savoir un groupe de conteneurs. Les conteneurs d'un pod partagent le même stockage, les mêmes ressources et les mêmes adresses IP.
  • Un cluster Kubernetes est constitué de nœuds maître worker (un nœud est l'hôte ou le serveur sur lequel s'exécute un conteneur ; il peut s'agir d'une machine virtuelle ou physique).
  • Un nœud maître gère la charge de travail du conteneur et redirige les communications à travers le système. Il inclut un planificateur qui contrôle les performances, la capacité et la disponibilité.
  • Les nœuds worker exécutent les pods sous la direction du nœud maître.
  • Des fichiers de configuration permettent aux équipes de spécifier des paramètres opérationnels tels que le nombre de pods pouvant être exécutés simultanément. À l'aide de Kubernetes, il est possible de gérer des ressources dans l'ensemble d'un data center comme s'il s'agissait d'un système unique. 

Kubernetes versus Docker : Ce n'est pas l'un ou l'autre

Pourquoi Kubernetes est important

Les applications d'entreprise de grande envergure peuvent inclure un nombre massif de conteneurs. Ce type d'architecture peut rapidement devenir complexe.

Les organisations doivent être en mesure d'orchestrer toutes leurs composantes mobiles dans un environnement de conteneurs, de préférence à partir d'un seul et même endroit. Beaucoup choisissent Kubernetes comme solution.

Kubernetes gère l'écosystème et ajuste les capacités de calcul et de stockage pour s'assurer que les conteneurs sont disponibles et déployés efficacement. Ainsi, l'équipe de développement sait toujours où ces conteneurs se trouvent.

Kubernetes peut aider les organisations à simplifier le déploiement de nouvelles applications, à rationaliser la gestion des conteneurs et des ressources, à réduire les risques liés aux mises à niveau et à éviter les temps d'indisponibilité. Il peut mettre à l'échelle des composants d'application, individuellement ou en tant que groupe, et prendre en charge des applications cloud natives. 

Dans son blog IBM, Matt Johnsen présente certains des avantages de Kubernetes :

  • Économies de coûts : Les clusters Kubernetes sont connus pour leur faible maintenance. Les équipes n'ont pas à écrire leurs propres scripts d'automatisation de conteneurs. Elles peuvent tirer parti d'une infrastructure partagée. Elles peuvent réduire les coûts matériels en utilisant plus efficacement le matériel existant.
  • Délais de commercialisation raccourcis : Kubernetes est parfait pour DevOps. Une bonne gestion de conteneurs signifie que tant que le logiciel sera exécuté, le déploiement sera presque toujours transparent.
  • Flexibilité informatique : Dans l'entreprise moderne, un logiciel s'exécute sur un certain nombre d'infrastructures privées et partagées. Utiliser une solution de gestion de conteneurs évite aux équipes de sacrifier les performances ou d'effectuer des ajustements importants pour déplacer des applications. Elles peuvent exécuter le logiciel là où l'entreprise en a besoin.

Un autre avantage de Kubernetes est la mise à l'échelle horizontale, qui permet de répondre à l'évolution des besoins en matière de performances.

« Si vous tirez déjà parti de Docker et des conteneurs pour vos applications, les transférer vers Kubernetes vous aidera à gérer une partie des frais d'exploitation inhérents à presque toutes les mises à l'échelle d'applications »  explique Sai Vennam, IBM Developer Advocate.

Kubernetes sous forme de service

Les organisations peuvent utiliser un système Kubernetes interne pour orchestrer leurs déploiements de conteneurs. Le cas échéant, un fournisseur de services peut proposer une plateforme basée sur Kubernetes ou une infrastructure sous forme de service.

Les clients bénéficient des mêmes fonctionnalités, mais avec moins de complexité et de frais. Selon Jason McGee, Vice-président et IBM Fellow, IBM Cloud :

« Installer, connecter et configurer une collection de ressources dans un cluster de conteneurs fonctionnel n'est pas simple. Cela nécessite du travail et des connaissances. Et si vous devez ajouter ou supprimer des capacités dans votre environnement de conteneurs ? Comment garantir la reprise après incident ? Les conteneurs et Kubernetes sont également en train d'évoluer, et ce à une vitesse fulgurante.

Il est difficile de suivre le rythme si vous faites tout vous-même. L'un des avantages d'un service géré, c'est que tout est fait à votre place. Vous pouvez ainsi vous concentrer uniquement sur vos applications. » ⁽⁴⁾

Un fournisseur de services gérés comme IBM gère les ressources réseau, de calcul et de stockage dans chaque cluster de nœuds. Le service IBM propose une planification intelligente, une gestion simplifiée des clusters, des règles de sécurité et d'isolement des conteneurs, ainsi que des mises à niveau d'infrastructure.

Les clients d'IBM peuvent également utiliser le service Kubernetes sur une infrastructure cloud bare metal. Ils peuvent ainsi bénéficier d'une agilité et d'une rapidité accrues pour exécuter des applications qui nécessitent des performances très élevées, telles que l'apprentissage automatique ou les applications d'IA.

« Les développeurs peuvent désormais choisir des configurations de machine bare metal qui répondent à leurs besoins – isolement, augmentation de la capacité de traitement, stockage sur disque local, etc. – tout en tirant parti des avantages des conteneurs, comme la facilité de transfert des données entre systèmes, ou la possibilité pour plusieurs membres d'équipe de travailler simultanément sur plusieurs parties d'une application », s'enthousiasme McGee.

The Weather Company met ses services Web à l'échelle pour garantir la sécurité des citoyens

 

Ressources Kubernetes

Que sont les conteneurs et pourquoi en avez-vous besoin ?

Découvrez ce que sont les conteneurs et pourquoi les organisations les utilisent

Adoption de Kubernetes et importance de la gestion des performances des applications

Découvrez pourquoi un environnement cloud basé sur Kubernetes peut favoriser la transformation de beaucoup d'entreprises

Kubernetes versus Docker : Pourquoi pas les deux ?

Découvrez les différences entre Kubernetes et Docker

IBM simplifie les applications complexes grâce à la facilité de gestion des conteneurs Kubernetes gérés sur une infrastructure bare metal

Explorez les avantages à exécuter des conteneurs Kubernetes sous forme de service géré sur une infrastructure cloud bare metal

Apprendre de Watson : Comment les conteneurs mettent les applications d'IA à l'échelle

Découvrez pourquoi les applications d'IA sont différentes et meilleures dans le cloud

Surveillance d'IBM Cloud Service avec Outlyer

Découvrez les avantages à utiliser la fonction de surveillance en libre-service d'Outlyer sur IBM Cloud Kubernetes Service

Service à la une

IBM Kubernetes Cloud Service

 

1. https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/

2. https://blog.risingstack.com/the-history-of-kubernetes/

3. https://en.wikipedia.org/wiki/Kubernetes

4. https://softwareengineeringdaily.com/2017/11/29/how-ibm-runs-its-cloud-with-jason-mcgee/