Qu’est-ce que Kubernetes ?

Effectué

La conception découplée des microservices combinée à l'atomicité des conteneurs permet d'effectuer un scale-out des applications qui répondent à la demande. Dans les solutions complexes comme l’application de suivi de drones, le processus de déploiement, de mise à jour, de supervision et de suppression des conteneurs entraîne des difficultés.

Avant d'examiner le contenu de Kubernetes, vous devez d'abord comprendre deux concepts : la gestion des conteneurs et les orchestrateurs.

Qu’est-ce que la gestion des conteneurs ?

La gestion des conteneurs est le processus d’organisation, d’ajout, de suppression ou de mise à jour d’un nombre significatif de conteneurs.

L’application de suivi de drones est composée de plusieurs microservices responsables des tâches comme la mise en cache, la mise en file d’attente ou le traitement des données. Chacun de ces services est hébergé dans un conteneur qui est déployé, mis à jour et mis à l'échelle indépendamment les uns des autres.

Schéma d’un serveur ou d’une application répliqués comme conteneurs pour le déploiement cloud.

Par exemple, avec le site web de l'application de suivi des drones, vous constatez que vous avez besoin de plus d'instances du service de mise en cache du site pour maintenir les performances. Ainsi, vous ajoutez donc plus d'instances de conteneurs de service de mise en cache à certains moments de la journée.

Supposons ensuite que vous ayez augmenté le nombre d'instances de mise en cache et que vous deviez déployer une nouvelle version du microservice. Vous devez mettre à jour tous les conteneurs actifs pour utiliser la nouvelle version.

La gestion des conteneurs vous aide à effectuer ces tâches répétitives manuelles.

Qu'est-ce qu'un orchestrateur de conteneurs ?

Un orchestrateur de conteneurs est un système qui déploie et gère automatiquement des applications conteneurisées. Dans le cadre de la gestion, l'orchestrateur gère la mise à l'échelle des modifications dynamiques dans l'environnement pour augmenter ou diminuer le nombre d'instances déployées de l'application. Il garantit également que toutes les instances de conteneurs déployées sont mises à jour lorsqu'une nouvelle version d'un service est mise en production.

Schéma illustrant comment le nombre d’instances de conteneur déployées augmente automatiquement si la demande augmente et comment un orchestrateur s’assure que toutes les instances déployées sont mises à jour avec les dernières versions logicielles.

Définir Kubernetes

Kubernetes est une plateforme open source extensible et portable permettant de gérer et d’orchestrer des charges de travail conteneurisées. Kubernetes simplifie les tâches complexes de gestion des conteneurs et vous fournit une configuration déclarative pour orchestrer les conteneurs dans différents environnements informatiques. Cette plateforme d’orchestration vous offre la même facilité d’utilisation et la même flexibilité dont vous avez peut-être déjà connaissance avec les offres PaaS (platform as a service) ou IaaS (infrastructure as a service).

Diagramme de serveurs répliqués comme plusieurs conteneurs dans un cluster Kubernetes.

Avantages de Kubernetes

Les avantages offerts par l’utilisation de Kubernetes sont basés sur l’abstraction des tâches.

Schéma affichant trois avantages Kubernetes : l’auto-adaptation, la mise à échelle dynamique et les mises à jour propagées.

Il s’agit notamment des tâches suivantes :

  • Autoréparation des conteneurs : par exemple, le redémarrage des conteneurs qui échouent ou le remplacement de conteneurs.

  • Mise à l’échelle dynamique du nombre de conteneurs déployés, en fonction de la demande

  • Automatisation des mises à jour propagées et des restaurations des conteneurs

  • Gestion du stockage

  • Gestion du trafic réseau

  • Stockage et gestion des informations sensibles, comme les noms d’utilisateur et les mots de passe

Important

Gardez à l’esprit que tous les aspects de Kubernetes ci-dessus demandent une configuration et une bonne compréhension des technologies sous-jacentes. Par exemple, vous devez comprendre des concepts comme les réseaux virtuels, les équilibreurs de charge et les proxys inverses pour configurer le réseau de Kubernetes.

Considérations relatives à Kubernetes

Avec Kubernetes, vous pouvez considérer votre centre de données comme une grande ressource de calcul. Vous n’avez pas besoin de vous soucier de l’endroit et du mode de déploiement de vos conteneurs, mais seulement du déploiement et de la mise à l’échelle de vos applications selon vos besoins.

Schéma montrant la liste des composants Kubernetes, dont la supervision, les microservices, les bases de données et le runtime de Docker.

Toutefois, il est important de comprendre que Kubernetes n’est pas une application installée avec tous les composants possibles nécessaires à la gestion et à l’orchestration d’une solution conteneurisée :

  • Les aspects, tels que le déploiement, la mise à l’échelle, l’équilibrage de charge, la journalisation et la supervision, sont tous facultatifs. Il vous incombe de trouver la solution la mieux adaptée à vos besoins pour gérer ces aspects.

  • Kubernetes ne limite pas les types d’applications qui peuvent s’exécuter sur la plateforme. Si votre application peut s’exécuter dans un conteneur, elle peut s’exécuter sur Kubernetes. Pour faire une utilisation optimale des solutions conteneurisées, vos développeurs doivent comprendre des concepts comme l’architecture de microservices.

  • Kubernetes ne fournit pas de middleware, d’infrastructures de traitement de données, de bases de données, de caches ou de systèmes de stockage de clusters. Tous ces éléments sont exécutés en tant que conteneurs ou dans le cadre d’une autre offre de service.

  • Pour que Kubernetes exécute des conteneurs, il a besoin d’un runtime de conteneur, comme Docker ou containerd. Le runtime de conteneur est l’objet responsable de la gestion des conteneurs. Par exemple, le runtime de conteneur démarre, arrête et signale l’état du conteneur.

  • Vous êtes responsable de la maintenance de votre environnement Kubernetes. Par exemple, vous devez gérer les mises à niveau du système d’exploitation, ainsi que l’installation et les mises à niveau de Kubernetes. Vous gérez également la configuration matérielle des ordinateurs hôtes, comme le réseau, la mémoire et le stockage.

Les services cloud comme Azure Kubernetes Service (AKS) limitent ces difficultés en fournissant un environnement Kubernetes hébergé. Ces services simplifient également le déploiement et la gestion des applications conteneurisées dans Azure. Avec AKS, vous bénéficiez des avantages de Kubernetes open source sans la complexité ni la surcharge opérationnelle liées à l’exécution de votre propre cluster Kubernetes personnalisé.

Notes

Kubernetes apparaît parfois sous la forme abrégée K8s. 8 représente les huit caractères entre le K et le S du mot K[ubernete]s.