Qu'est ce que Kubernetes ?

Martin PAUCOT
Publié le 2/13/2023
Retour

Introduction

Kubernetes, aussi appelé "k8s" ou "kube" est une plateforme de gestion de conteneurs open source qui est devenu un standard industriel pour la gestion d'applications.

Développée initialement par Google, cette technologie est désormais maintenu par la fondation Cloud Native Computing.

Kubernetes permet d'automatiser toute les actions manuelles impliquant le déploiement, la gestion ou la mise à l'échelle d'une infrastructure.


Echangez 2 minutes à propos de Docker avec un ingénieur Cloud ou un DevOps et la conversation tournera en orchestration de containeurs.

Qu'est ce que l'orchestration de conteneurs ?

Il est simple de déployer un containeur sur un serveur mais opérer sur une infrastructure à grande échelle avec un grand nombre d'applications et de services peut devenir extrêmement complexe.

L'orchestration de containeurs c'est le principe de faire tourner les bons services, au bon endroit, au bon moment :

  • Un pique de trafique ? Je veux trois instances de mon API !
  • Je veux une instance sur le serveur A, une sur le B et une sur le C.
  • Mon serveur A est HS ? Je veux deux instances sur le serveur B.

Qu'est ce que Kubernetes ?

Kubernetes est un orchestrateur de containeurs : son rôle est d'automatiser la mise à l'échelle et la disposition de containeurs.

Il vous suffit de lui indiquer les services que vous souhaitez avoir et les ressources allouées pour que ce dernier les dispatche automatiquement à travers votre Cluster.

Qu'est ce qu'un Cluster Kubernetes ?

Un Cluster est un regroupement de plusieurs serveurs (aussi appelés "nœuds") et le vrai intérêt de Kubernetes est sa capacité à orchestrer des containeurs à travers chacun de ces serveurs.

Vous ne déployez plus une application sur un serveur mais sur un Cluster, c'est Kubernetes qui décidera pour vous le meilleure endroit où lancer votre service.

Grâce aux Cloud Providers comme AWS (Amazon), GCP (Google) ou encore Azure (Microsoft) vous pouvez configurer de la mise à l'échelle "horizontale" pour automatiquement ajouter de nouveaux serveurs à votre Cluster en fonction de la charge.

Les avantages de Kubernetes

La haute disponibilité et la tolérance aux pannes

Lorsque vous déployez une application, vous indiquez combien d'instances vous souhaitez.

Si un serveur devient indisponible, les services présents dessus seront lancés sur un autre noeud.

Au moment où le serveur redevient opérationnel, Kubernetes arrange de nouveau la disposition des containeurs pour équilibrer la charge à travers les nœuds.

Mise à l'échelle automatique

Plutôt que de demander à Kubernetes un nombre précis d'instances de votre API, vous pouvez indiquer des règles pour qu'il le définisse automatiquement en fonction de la charge.

Il va ensuite répartir automatiquement ces instances à travers les différents noeuds du Cluster pour répartir la charge.

Les operateurs

Les opérateurs sont des services qui interagissent avec votre Cluster pour automatiser certaines opérations.

En déployant un service, vous pouvez indiquer l'hôte qui va pointer vers ce dernier, les variables d'environnements, les ressources allouées, etc. Les opérateurs vont utiliser ces informations pour faciliter la gestion de votre infrastructure.

Quelques exemples des plus communs :

Cert Manager

Cert Manager vous permet d'automatiser la génération de certificats SSL pour vos services.

Cluster Autoscaler

Cluster Autoscaler interagit avec votre Cloud Provider pour automatiquement ajouter ou enlever des nœuds à votre Cluster en fonction de la charge.

External DNS

External DNS vous permet d'automatiquement ajouter des entrées DNS pour pointer vers les services de votre Cluster.

External Secrets

External Secrets permet de synchroniser des credentials d'un services externe avec les variables d'environnements de vos services.

Pour conclure

Kubernetes est devenu un standard industriel dans la création d'infrastructure Cloud pour orchestrer facilement un très grand nombre de services à travers plusieurs serveurs.

L'écosystème offre un large panel d'outils pour faciliter la gestion de son infrastructure et automatiser un grand nombre de tâches d'administration système comme la création de certificats SSL ou l'ajout d'entrée DNS.

Kubernetes permet de créer une infrastructure robuste tout en facilitant le déploiement de ses applications.

Partagez cet article :

Un projet DevOps ?

Contactez-nous !
© 2023 Syneki. Tous droits réservés.
Mentions Legales