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.

Diagram of a server or application replicated as containers for cloud deployment.

Par exemple, avec le site web de l'application de suivi des drones, vous constatez qu'à certains moments de la journée, 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.

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.

Diagram showing how number of deployed container instances is automatically increased if demand rises and how an orchestrator ensures all deployed instances are updated with the latest software version.

Définir Kubernetes

Kubernetes est une plateforme open source portable et extensible pour la gestion et l'orchestration 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).

Diagram of replicated servers as multiple containers in a Kubernetes cluster.

Avantages de Kubernetes

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

Diagram that lists three Kubernetes benefits: self-healing, dynamic scaling, and rolling updates.

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.

Diagram that shows a list of Kubernetes components that including monitoring, microservices, databases, and the Docker runtime.

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.