Le Master de Kubernetes

Le rôle du master est de piloter le fonctionnement du cluster Kubernetes. Il exécute un serveur d’API, un ordonnanceur, divers contrôleurs et un système de stockage pour conserver l’état du cluster et la configuration réseau. Pour plus de fiabilité, il est possible de construire un cluster Kubernetes avec plusieurs masters.

Les Workers de Kubernetes

Dans un clusteur Kubernetes, les workers sont les machines qui exécutent les workloads applicatifs. Il est possible d’avoir un ou plusieurs types de machines différents adaptés aux différents types de charges de travail sur le cluster.

Les Pods

Les Pods de Kubernetes sont des éléments fondamentaux de Kubernetes. Ils sont composés d’un ou plusieurs conteneurs, d’un réseau et de volume de peristence partagés. Tout comme les conteneurs, les pods doivent être conçus pour être éphémères.

Les Services

Comme un pod, un service Kubernetes est un objet REST. Un service est à la fois une abstraction qui définit un ensemble logique de pods et une politique d’accès à cet ensemble. Il existe différents types de services : ClusterIP, NodePort, LoadBalancer et ExternalName.

Le Replication Controler

Les contrôleurs sont là pour gérer le cycle de vie des ressources. Ils connaissent l’état souhaité d’une ressource, surveillent que l’état est conforme aux attentes et ils font les changements nécessaires pour que l’état actuel soit conforme à l’état désiré.

La base de données etcd

La “base de données” de Kubernetes est etcd. Les informations de configuration, d’exécution et d’état y sont stockées. C’est le seul composant " stateful " du master, il est crucial pour le bon fonctionnement de Kubernetes.

Le stockage dans etcd est toujours cohérent. Il fonctionne sur le principe clé-valeur. Le stockage peut être réparti sur plusieurs machines pour en assurer la fiabilité. Il supporte les pannes de machines. etcd est développé par CoreOS.

Le Scheduler

Kube-scheduler est l’agent qui affecte les conteneurs à des noeuds. Il prend en compte le taux de charge du noeud, sa capacité et les besoins en ressource. C’est un planificateur, qui vérifie la charge non affectée et trouve les noeuds appropriés.

Le contrôleur d’API

Kubernetes expose une API via un serveur API. Il est possible de communiquer avec l’API en utilisant un client local appelé kubectl. Il est également possible d’écrire votre propre client ou d’utiliser les commandes curl pour contrôler le cluster via l’API.

Lorsqu’un conteneur doit être exécuté, c’est le rôle du kube-scheduler de trouver le noeud approprié. Le kube-scheduler reçoit ses commandes via l’API.

Le réseau

Les Labels

Liens intéressants