Kubernetes - Architecture

Dans ce chapitre, nous aborderons l'architecture de base de Kubernetes.

Kubernetes - Architecture de cluster

Comme le montre le diagramme suivant, Kubernetes suit l'architecture client-serveur. Dans lequel, nous avons master installé sur une machine et le nœud sur des machines Linux séparées.

Les composants clés du maître et du nœud sont définis dans la section suivante.

Kubernetes - Composants principaux de la machine

Voici les composants de Kubernetes Master Machine.

etcd

Il stocke les informations de configuration qui peuvent être utilisées par chacun des nœuds du cluster. Il s'agit d'un magasin de valeurs de clés à haute disponibilité qui peut être réparti entre plusieurs nœuds. Il n'est accessible que par le serveur d'API Kubernetes car il peut contenir des informations sensibles. Il s'agit d'un magasin de valeurs de clés distribué accessible à tous.

Serveur API

Kubernetes est un serveur API qui fournit toutes les opérations sur le cluster à l'aide de l'API. Le serveur API implémente une interface, ce qui signifie que différents outils et bibliothèques peuvent facilement communiquer avec lui.Kubeconfigest un package avec les outils côté serveur qui peuvent être utilisés pour la communication. Il expose l'API Kubernetes.

Gestionnaire de contrôleur

Ce composant est responsable de la plupart des collecteurs qui régule l'état du cluster et effectue une tâche. En général, il peut être considéré comme un démon qui s'exécute en boucle non terminale et est responsable de la collecte et de l'envoi des informations au serveur API. Il vise à obtenir l'état partagé du cluster, puis à apporter des modifications pour amener l'état actuel du serveur à l'état souhaité. Les contrôleurs clés sont le contrôleur de réplication, le contrôleur de point de terminaison, le contrôleur d'espace de noms et le contrôleur de compte de service. Le gestionnaire de contrôleurs exécute différents types de contrôleurs pour gérer les nœuds, les points de terminaison, etc.

Planificateur

C'est l'un des composants clés du maître Kubernetes. C'est un service en master chargé de répartir la charge de travail. Il est chargé de suivre l'utilisation de la charge de travail sur les nœuds de cluster, puis de placer la charge de travail sur laquelle les ressources sont disponibles et d'accepter la charge de travail. En d'autres termes, c'est le mécanisme responsable de l'allocation des pods aux nœuds disponibles. Le planificateur est responsable de l'utilisation de la charge de travail et de l'allocation du pod au nouveau nœud.

Kubernetes - Composants de nœud

Voici les composants clés du serveur Node qui sont nécessaires pour communiquer avec le maître Kubernetes.

Docker

La première exigence de chaque nœud est Docker qui aide à exécuter les conteneurs d'applications encapsulés dans un environnement d'exploitation relativement isolé mais léger.

Service Kubelet

Il s'agit d'un petit service dans chaque nœud chargé de relayer les informations vers et depuis le service du plan de contrôle. Il interagit avecetcdstore pour lire les détails de configuration et les bonnes valeurs. Cela communique avec le composant maître pour recevoir des commandes et travailler. lekubeletLe processus assume alors la responsabilité de maintenir l'état de travail et le serveur de nœuds. Il gère les règles du réseau, la redirection de port, etc.

Service proxy Kubernetes

Il s'agit d'un service proxy qui s'exécute sur chaque nœud et aide à rendre les services disponibles à l'hôte externe. Il aide à transmettre la demande aux conteneurs corrects et est capable d'effectuer un équilibrage de charge primitif. Cela garantit que l'environnement réseau est prévisible et accessible et en même temps il est également isolé. Il gère les pods sur le nœud, les volumes, les secrets, la création du bilan de santé des nouveaux conteneurs, etc.

Kubernetes - Structure maître et nœud

Les illustrations suivantes montrent la structure de Kubernetes Master et Node.