Kubernetes : informations générales

Kubernetes est un système de gestion libre de Container Clusters pour la mise à disposition automatique, la mise à l'échelle et la gestion d'applications conteneurisées.

Kubernetes vous permet :

  • d'orchestrer un conteneur par le biais de plusieurs hôtes

  • de mettre à disposition et d'actualiser vos applications rapidement et de manière prévisible

  • de mettre à l'échelle vos applications sans interruption

  • de mettre à disposition de nouvelles fonctionnalités de manière fluide

  • d'utiliser vos ressources matérielles de manière optimale

Kubernetes propose également, entre autres, les avantages supplémentaires suivants :

  • Health Check et réparation autonome : les conteneurs défaillants sont redémarrés automatiquement. Si un node (nœud) tombe en panne, les conteneurs qui s'y trouvent sont redistribués. Si des conteneurs n'envoient aucune réponse au service Health Check personnalisé, ils seront automatiquement stoppés par Kubernetes. De plus, ce système de gestion libre de Container Clusters propose les fonctions de placement automatique, de réplication automatique et de mise à l'échelle automatique.

  • Bin Packing automatique : Kubernetes place des conteneurs automatiquement sur la base des ressources requises et d'autres restrictions, sans compromis au niveau de la disponibilité.

  • Déploiements et désinstallations automatisés : Kubernetes répartit les modifications du logiciel ou de la configuration par le biais d'un déploiement (rollout). En même temps, ce système de gestion libre de Container Clusters surveille l'état de l'application. Si un problème survient, une désinstallation est réalisée automatiquement (rollback).

  • Service Discovery et Load Balancing: Kubernetes attribue aux conteneurs une adresse IP univoque, à des groupes de conteneurs un nom DNS précis et peut procéder à un équilibrage des charges entre ceux-ci.

  • Exécution de lots : Kubernetes peut gérer vos lots et vos charges de travail CI. Si souhaité, les conteneurs défaillants sont remplacés.

Architecture :

Les clusters Kubernetes sont composés de nodes (nœuds) « Master » et « Worker ». Le Master orchestre le cluster automatiquement. Il reçoit des ordres de l'administrateur et les transfère aux Workers. Les conteneurs Linux groupés en pods sont exécutés sur les nodes (nœuds) Worker.

Termes techniques importants

Master : le Master orchestre le cluster.

Worker : ces machines exécutent les tâches requises et attribuées par le biais de conteneurs Linux groupés en pods.

Pod : un groupe composé d'un ou de plusieurs conteneurs utilisé(s) dans un seul node (nœud). Tous les conteneurs d'un même pod se partagent l'adresse IP, IPC, le nom d'hôte et autres ressources comme par exemple les Shared Storages. Chaque pod est connecté au nœud dans lequel il est planifié et y reste jusqu'à ce qu'il soit arrêté ou supprimé. En outre, chaque pod exécute au moins un "kubelet" et un Container Runtime.

Kubelet : le kubelet est une sorte d'agent au service du Master. Cette procédure est réalisée sur chaque node (nœud) et est responsable de la communication entre Master et node (nœud). Les kubelets s'assurent que les conteneurs définis sont démarrés et fonctionnent.

kubectl: kubectl est l'interface de lignes de commande pour la gestion de clusters Kubernetes.

Replication Controller: un Replication Controller s'assure qu'un nombre défini de répliques de pod fonctionne à tout moment.

Vous trouverez de plus amples informations sous le lien https://kubernetes.io/docs/home/