Comment utiliser la commande docker node update pour gérer les nœuds d'un swarm

DockerDockerBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire (lab), vous apprendrez à gérer les nœuds Docker Swarm en utilisant la commande docker node update. Vous explorerez diverses fonctionnalités de cette commande, notamment la mise à jour de la disponibilité des nœuds pour contrôler l'attribution des tâches, l'ajout et la suppression d'étiquettes (labels) pour catégoriser les nœuds en fonction de contraintes de planification des tâches, et la modification du rôle d'un nœud au sein du swarm.

Grâce à des exercices pratiques, vous apprendrez à mettre en pause un nœud pour empêcher l'attribution de nouvelles tâches, à ajouter une ou plusieurs étiquettes (labels) aux nœuds, à supprimer les étiquettes existantes et à promouvoir un nœud worker au rôle de manager. Ces étapes vous permettront d'acquérir une expérience pratique dans la gestion de l'état et des attributs des nœuds dans un cluster Docker Swarm.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker/ContainerOperationsGroup -.-> docker/ls("List Containers") docker/ContainerOperationsGroup -.-> docker/ps("List Running Containers") docker/ContainerOperationsGroup -.-> docker/exec("Execute Command in Container") docker/ContainerOperationsGroup -.-> docker/inspect("Inspect Container") subgraph Lab Skills docker/ls -.-> lab-555186{{"Comment utiliser la commande docker node update pour gérer les nœuds d'un swarm"}} docker/ps -.-> lab-555186{{"Comment utiliser la commande docker node update pour gérer les nœuds d'un swarm"}} docker/exec -.-> lab-555186{{"Comment utiliser la commande docker node update pour gérer les nœuds d'un swarm"}} docker/inspect -.-> lab-555186{{"Comment utiliser la commande docker node update pour gérer les nœuds d'un swarm"}} end

Mettre à jour la disponibilité d'un nœud pour le mettre en pause

Dans cette étape, nous allons apprendre à mettre à jour la disponibilité d'un nœud dans un Docker Swarm. La disponibilité d'un nœud détermine si celui-ci peut recevoir de nouvelles tâches. Les états de disponibilité possibles sont active, pause et drain.

  • active : Le nœud peut recevoir de nouvelles tâches. C'est l'état par défaut.
  • pause : Le nœud ne recevra pas de nouvelles tâches, mais les tâches existantes continueront de s'exécuter.
  • drain : Le nœud ne recevra pas de nouvelles tâches, et les tâches existantes seront arrêtées et reprogrammées sur d'autres nœuds.

Nous allons changer la disponibilité du nœud actuel en pause. Tout d'abord, nous devons trouver l'ID du nœud actuel. Nous pouvons utiliser la commande docker node ls pour lister les nœuds du swarm.

docker node ls

La sortie affichera une liste de nœuds, y compris leur ID, leur nom d'hôte, leur statut, leur disponibilité et leur statut de manager. Identifiez l'ID du nœud sur lequel vous travaillez actuellement.

Maintenant, utilisez la commande docker node update avec le paramètre --availability pause et l'ID du nœud pour changer la disponibilité du nœud. Remplacez <node_id> par l'ID réel de votre nœud.

docker node update --availability pause <node_id>

Après avoir exécuté la commande, vous pouvez vérifier le changement en exécutant à nouveau docker node ls. La disponibilité de votre nœud devrait maintenant être pause.

docker node ls

Ajouter une étiquette (label) à un nœud

Dans cette étape, nous allons apprendre à ajouter une étiquette (label) à un nœud dans un Docker Swarm. Les étiquettes (labels) sont des paires clé-valeur que vous pouvez attacher aux nœuds. Elles sont utiles pour organiser et sélectionner des nœuds en fonction de critères spécifiques, qui peuvent être utilisés pour les contraintes d'attribution des tâches.

Nous allons ajouter une étiquette (label) nommée env avec la valeur dev au nœud actuel. Tout d'abord, assurez-vous d'avoir l'ID du nœud de l'étape précédente. Sinon, vous pouvez le récupérer à nouveau en utilisant docker node ls.

docker node ls

Maintenant, utilisez la commande docker node update avec le paramètre --label-add, l'étiquette (label) au format clé=valeur et l'ID du nœud. Remplacez <node_id> par l'ID réel de votre nœud.

docker node update --label-add env=dev <node_id>

Après avoir ajouté l'étiquette (label), vous pouvez inspecter le nœud pour voir l'étiquette ajoutée. Utilisez la commande docker node inspect suivie de l'ID du nœud.

docker node inspect <node_id>

Recherchez la section Labels dans la sortie. Vous devriez y voir l'étiquette (label) env: dev listée.

Ajouter plusieurs étiquettes (labels) à un nœud

Dans cette étape, nous allons apprendre à ajouter plusieurs étiquettes (labels) à un nœud simultanément. Vous pouvez ajouter plusieurs étiquettes (labels) en répétant le paramètre --label-add pour chaque étiquette (label) que vous souhaitez ajouter.

Nous allons ajouter deux nouvelles étiquettes (labels) au nœud actuel : tier avec la valeur frontend et region avec la valeur us-east. Assurez-vous d'avoir l'ID du nœud des étapes précédentes.

Utilisez la commande docker node update avec plusieurs paramètres --label-add et l'ID du nœud. Remplacez <node_id> par l'ID réel de votre nœud.

docker node update --label-add tier=frontend --label-add region=us-east <node_id>

Après avoir ajouté les étiquettes (labels), inspectez le nœud à nouveau pour vérifier que toutes les étiquettes (labels) ont été ajoutées correctement.

docker node inspect <node_id>

Dans la section Labels de la sortie, vous devriez maintenant voir env: dev, tier: frontend et region: us-east.

Supprimer une étiquette (label) d'un nœud

Dans cette étape, nous allons apprendre à supprimer une étiquette (label) d'un nœud dans un Docker Swarm. Vous pouvez supprimer une étiquette (label) en utilisant la commande docker node update avec le paramètre --label-rm suivi de la clé de l'étiquette (label).

Nous allons supprimer l'étiquette (label) region que nous avons ajoutée à l'étape précédente. Assurez-vous d'avoir l'ID du nœud.

Utilisez la commande docker node update avec le paramètre --label-rm et la clé de l'étiquette (label) (region), suivie de l'ID du nœud. Remplacez <node_id> par l'ID réel de votre nœud.

docker node update --label-rm region <node_id>

Après avoir supprimé l'étiquette (label), inspectez le nœud à nouveau pour vérifier que l'étiquette (label) a été supprimée.

docker node inspect <node_id>

Dans la section Labels de la sortie, vous devriez maintenant voir env: dev et tier: frontend, mais l'étiquette (label) region: us-east devrait être disparue.

Mettre à jour le rôle d'un nœud en gestionnaire (manager)

Dans cette étape, nous allons apprendre à mettre à jour le rôle d'un nœud dans un Docker Swarm. Un nœud peut avoir l'un des deux rôles suivants : manager (gestionnaire) ou worker (travailleur). Les nœuds gestionnaires (manager nodes) gèrent les tâches de gestion du swarm, tandis que les nœuds travailleurs (worker nodes) exécutent les services.

Nous allons promouvoir le nœud actuel au rôle de gestionnaire (manager). Assurez-vous d'avoir l'ID du nœud.

Utilisez la commande docker node update avec le paramètre --role manager et l'ID du nœud. Remplacez <node_id> par l'ID réel de votre nœud.

docker node update --role manager <node_id>

Après avoir mis à jour le rôle, vérifiez le changement en listant les nœuds.

docker node ls

La sortie devrait maintenant indiquer le rôle de votre nœud comme Manager.

Résumé

Dans ce laboratoire (lab), nous avons appris à gérer les nœuds Docker Swarm en utilisant la commande docker node update. Nous avons abordé plusieurs opérations clés, notamment la mise à jour de la disponibilité d'un nœud à pause pour empêcher celui-ci de recevoir de nouvelles tâches tout en permettant aux tâches existantes de continuer à s'exécuter.

En outre, nous avons exploré comment ajouter et supprimer des étiquettes (labels) des nœuds. Nous avons appris à ajouter une seule étiquette (label) en utilisant --label-add key=value et plusieurs étiquettes (labels) simultanément. Nous avons également pratiqué la suppression d'une étiquette (label) spécifique en utilisant --label-rm key. Enfin, nous avons démontré comment changer le rôle d'un nœud en manager, mettant en évidence la flexibilité de la commande docker node update pour gérer l'état et la configuration des nœuds au sein d'un Docker Swarm.