Fonctionnement de Kubernetes : état souhaité pour l'exécution des charges de…

Comment fonctionne Kubernetes, affiché sur un canevas interactif : les manifestes, le plan de contrôle, la planification et la boucle de réconciliation qui maintient les charges de travail en cours d'exécution.

Kubernetes exécute des applications conteneurisées en effectuant une réconciliation continue : vous déclarez l'état souhaité, et le plan de contrôle et les nœuds de travail s'efforcent de faire correspondre le cluster.

Fonctionnement de Kubernetes : état souhaité pour l'exécution des charges de…

Le canevas FlowJam interactif de cette explication : chaque couloir, ligne et flèche ci-dessus appartient à un véritable diagramme QueryChart que vous pouvez ouvrir et modifier.

Comment lire ce visuel

  • Lisez les quatre colonnes de gauche à droite : Déclarer, Planifier, Exécuter, Maintenir.
  • Les lignes du plan de contrôle (en haut) décident ; les lignes du nœud de travail (en bas) le font. Les flèches de haut en bas sont des commandes ; la boucle de sauvegarde de « Le pod est sain ? » est le cycle de réconciliation.
  • L’état désiré dans le manifeste est la source de la vérité : toutes les autres cases existent pour amener la réalité vers lui.

Déclarer l'état souhaité

"kubectl applique un manifeste de l'état souhaité", c'est ainsi que tout commence : le développeur décrit la cible ("3 répliques de l'API, image v2.1, port 8080") et la soumet. "Le serveur API stocke l'état souhaité dans etcd" est le point de validation : le serveur API du plan de contrôle est la porte d'entrée et etcd est la source de vérité du cluster. Tout ce qui suit est une conséquence de cette seule écriture.

Planification

« Le planificateur surveille et sélectionne les nœuds pour les pods » et « Le planificateur attribue chaque pod à un nœud sain » sont le plan de contrôle qui choisit où le travail s'exécute. Le planificateur prend en compte les ressources et les contraintes de chaque nœud et place le pod sur le meilleur candidat : ​​le développeur ne choisit pas les machines, seulement l'état souhaité.

Courir sur les travailleurs

« kubelet sur le nœud extrait les images et démarre les conteneurs » est la moitié du travail de l'arrangement : le kubelet est l'agent du plan de contrôle sur chaque nœud, parlant au runtime du conteneur pour démarrer les pods attribués et rendre compte de l'état de santé. "Un service achemine le trafic vers les pods en cours d'exécution" ajoute le point d'entrée réseau stable : les pods vont et viennent, mais le nom du service ne change pas.

Maintenir l'État

« Le contrôleur se réconcilie : redémarre les échecs, met à l'échelle les répliques » est la boucle de rétroaction, et « Le pod est sain ? » est sa sonde : les contrôles d'activité et de préparation décident si un pod est remplacé (la branche "Non" revient dans la réconciliation) ou conservé. « Le déploiement reste à l'état souhaité » est l'état terminal : il ne s'agit pas d'un travail terminé, mais d'un système en cours d'exécution qui correspond à son manifeste.

Relations et enseignements clés

  • Kubernetes est déclaratif : vous indiquez la cible, pas les étapes, et le système fait le reste.
  • Le plan de contrôle décide, le kubelet exécute : rien ne fonctionne sans l'état souhaité dans etcd.
  • La réconciliation est la boucle : comparer, appliquer la différence, répéter, pour toujours.
  • Les sondes décident de l'état de santé, et l'état de santé décide du remplacement : un pod défaillant est redémarré sans intervention humaine.
  • Kubernetes orchestre les packages Docker des conteneurs, c'est pourquoi les deux visuels se connectent.

Quand utiliser ce visuel

  • Expliquer la distinction entre le plan de contrôle et le travailleur à une équipe qui découvre Kubernetes.
  • Enseigner le modèle déclaratif avant que quelqu'un rédige son premier manifeste de déploiement et de service.
  • Fonder une conversation sur l'auto-réparation : ce que Kubernetes corrige automatiquement et ce qui nécessite encore un opérateur.

Comment cela fonctionne

  1. Annotez le manifeste que vous exécutez réellement

    Lors de l'étape d'application, ajoutez des notes sur votre déploiement et votre service réels (nombre de réplicas, images, ports) afin que le diagramme reflète votre cluster.

  2. Ajouter la couche réseau

    Insérez une zone Ingress entre le service et les utilisateurs, et notez comment votre cluster expose le trafic, car c'est la partie que la plupart des équipes personnalisent en premier.

  3. Affichez vos règles de mise à l'échelle

    Prolongez l'étape de réconciliation avec une branche Horizontal Pod Autoscaler qui met à l'échelle les réplicas sur le processeur ou les métriques personnalisées, se terminant dans son propre état.

  4. Ajouter les chemins de défaillance et de stockage

    Incluez des volumes persistants pour les charges de travail avec état et les règles d'anti-affinité que vous utilisez, chacune avec un commentaire expliquant pourquoi.

Questions fréquentes

Qu’est-ce que Kubernetes en termes simples ?

Kubernetes est un système qui exécute des applications conteneurisées sur un cluster de machines et les maintient en fonctionnement. Vous lui dites ce que vous voulez (combien de copies de chaque application, quelle image, quels ports) et il planifie le travail sur les machines, redémarre les pannes, augmente et diminue et achemine le trafic. Le visuel capture les opérations de déclaration, de planification, d'exécution et de maintenance.

Qu’est-ce que le plan de contrôle dans Kubernetes ?

Le plan de contrôle est l'ensemble des composants qui prennent des décisions concernant le cluster : le serveur API qui accepte vos manifestes, etcd qui stocke l'état souhaité, le planificateur qui place les pods et les contrôleurs qui rapprochent la réalité de l'état souhaité. C'est le cerveau. Les nœuds travailleurs sont le muscle : chacun exécute un kubelet qui démarre et surveille les pods qui lui sont assignés.

Que signifie « déclaratif » dans Kubernetes ?

Cela signifie que vous décrivez l'état cible au lieu d'émettre des commandes pour l'atteindre. Vous appliquez un manifeste disant « exécuter trois répliques » ; Kubernetes détermine les étapes et continue de les suivre chaque fois que la réalité dérive. Si un pod meurt, le contrôleur crée un remplaçant pour revenir à trois : aucun humain ne réexécute une commande. Le manifeste est la source de la vérité et la réconciliation en est le mécanisme.

Comment Kubernetes maintient-il les applications en bonne santé ?

Grâce aux sondes et à la boucle de réconciliation. Les sondes d'activité indiquent à Kubernetes si un conteneur est actif : une sonde d'activité défaillante le redémarre. Les sondes de préparation lui indiquent si un pod peut servir du trafic : une sonde de préparation défaillante le supprime du service. Le contrôleur compare l'état de fonctionnement à l'état souhaité et applique la différence en continu. Quelle est la boucle dans laquelle « Le pod est sain ? » la décision dans le visuel représente.

Modifier ce visuel dans QueryChart (FlowJam)

Ouvrez exactement ce canevas Kubernetes en tant que votre propre graphique, renommez les composants de votre cluster et annotez vos charges de travail.

Modifier ce visuel dans QueryChart (FlowJam)

Plus dans Explications visuelles