Comment utiliser la commande docker node promote pour promouvoir un nœud worker

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, vous apprendrez à promouvoir un nœud worker (nœud de travail) en nœud manager (nœud de gestion) dans un Docker Swarm. Vous commencerez par initialiser un Docker Swarm sur une machine virtuelle LabEx et joindre un nœud worker à celui-ci.

Après la configuration, vous identifierez le nœud worker au sein du swarm, puis vous utiliserez la commande docker node promote pour changer son rôle en nœud manager. Enfin, vous vérifierez le nouveau rôle du nœud pour confirmer que la promotion a réussi. Cette exercice pratique démontrera un aspect clé de la gestion de Docker Swarm.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/SystemManagementGroup(["System Management"]) docker/ContainerOperationsGroup -.-> docker/ls("List Containers") docker/SystemManagementGroup -.-> docker/version("Show Docker Version") docker/SystemManagementGroup -.-> docker/system("Manage Docker") subgraph Lab Skills docker/ls -.-> lab-555183{{"Comment utiliser la commande docker node promote pour promouvoir un nœud worker"}} docker/version -.-> lab-555183{{"Comment utiliser la commande docker node promote pour promouvoir un nœud worker"}} docker/system -.-> lab-555183{{"Comment utiliser la commande docker node promote pour promouvoir un nœud worker"}} end

Initialiser un Docker Swarm

Dans cette étape, vous allez initialiser un Docker Swarm sur votre machine virtuelle LabEx. Un Docker Swarm est un cluster d'hôtes Docker qui fonctionnent en mode swarm. Le mode swarm vous permet de gérer un cluster de nœuds Docker comme un seul système virtuel.

Avant d'initialiser le swarm, vérifions la version actuelle de Docker installée sur la machine virtuelle.

docker version

Vous devriez voir une sortie similaire à celle-ci, indiquant que la version de Docker est 20.10.21 :

Client: Docker Engine - Community
 Version:           20.10.21
 API version:       1.41
 Go version:        go1.18.9
 Git commit:        baeda1f
 Built:             Tue Oct 25 18:01:18 2022
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.21
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.18.9
  Git commit:       363bd3a
  Built:            Tue Oct 25 17:59:35 2022
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.10
  GitCommit:        b4bd5d2bb63a5d10182b7e90689158e7c7b9b06b
 runc:
  Version:          1.1.4
  GitCommit:        v1.1.4-0-g5fd4c4d
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

Maintenant, initialisons le Docker Swarm. Lorsque vous initialisez un swarm, le nœud actuel devient le premier nœud manager (nœud de gestion). Les nœuds manager gèrent les tâches de gestion du swarm, telles que la maintenance de l'état du swarm, la planification des services et la fourniture de l'API du mode swarm.

Utilisez la commande docker swarm init pour initialiser le swarm. Nous allons spécifier l'adresse d'annonce pour garantir que les autres nœuds peuvent rejoindre le swarm en utilisant l'adresse IP de la machine virtuelle. Remplacez YOUR_VM_IP_ADDRESS par l'adresse IP réelle de votre machine virtuelle LabEx. Vous pouvez trouver cette adresse IP dans les détails de l'environnement LabEx.

docker swarm init --advertise-addr YOUR_VM_IP_ADDRESS

Après avoir exécuté la commande, vous verrez une sortie indiquant que le swarm a été initialisé et fournissant une commande pour que les autres nœuds rejoignent le swarm en tant que nœuds worker (nœuds de travail). Gardez cette commande de jointure à portée de main, car vous en aurez besoin à l'étape suivante.

Swarm initialized: current node (xxxxxxxxxxxx) is now a manager.

To add a worker to this swarm, run the following command on the worker node:

    docker swarm join --token SWMTKN-1-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxx YOUR_VM_IP_ADDRESS:2377

To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

Joindre un nœud worker (nœud de travail) au swarm

Dans l'étape précédente, vous avez initialisé un Docker Swarm et le nœud actuel est devenu le nœud manager (nœud de gestion). Maintenant, vous allez simuler l'ajout d'un nœud worker à ce swarm. Dans un scénario réel, vous effectueriez cette étape sur une machine distincte que vous souhaitez joindre en tant que nœud worker. Cependant, pour ce laboratoire, nous allons utiliser la même machine virtuelle pour simuler l'ajout d'un nœud worker au swarm.

Pour joindre un nœud en tant que worker, vous avez besoin de la commande de jointure fournie après l'initialisation du swarm. Cette commande inclut le jeton de jointure du swarm ainsi que l'adresse IP et le port du nœud manager.

Si vous n'avez pas la commande de jointure de l'étape précédente, vous pouvez la récupérer sur le nœud manager en utilisant la commande docker swarm join-token worker.

docker swarm join-token worker

Cette commande affichera la commande de jointure pour un nœud worker :

To add a worker to this swarm, run the following command on the worker node:

    docker swarm join --token SWMTKN-1-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxx YOUR_VM_IP_ADDRESS:2377

Maintenant, exécutez la commande de jointure que vous avez obtenue. Étant donné que nous simulons un nœud worker sur la même machine virtuelle, vous exécuterez cette commande dans le même terminal.

docker swarm join --token SWMTKN-1-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxx YOUR_VM_IP_ADDRESS:2377

Vous devriez voir une sortie indiquant que le nœud a rejoint le swarm en tant que worker :

This node joined a swarm as a worker.

Cela signifie que votre machine virtuelle unique agit maintenant à la fois comme un nœud manager et un nœud worker au sein du swarm.

Lister les nœuds du swarm et identifier le nœud worker

Dans les étapes précédentes, vous avez initialisé un Docker Swarm puis rejoint le même nœud au swarm en tant que nœud worker. Maintenant, listons les nœuds du swarm pour voir l'état actuel et identifier les rôles de chaque nœud.

Pour lister les nœuds du swarm, utilisez la commande docker node ls. Cette commande fournit des informations sur chaque nœud du swarm, y compris son identifiant (ID), son nom d'hôte, son statut, sa disponibilité, son statut de manager et sa version du moteur Docker.

docker node ls

Vous devriez voir une sortie similaire à celle-ci :

ID                            HOSTNAME            STATUS    AVAILABILITY   MANAGER STATUS   ENGINE VERSION
xxxxxxxxxxxx                  labex-vm            Ready     Active         Leader           20.10.21
yyyyyyyyyyyy                  labex-vm            Ready     Active                          20.10.21

Dans cette sortie, vous verrez deux entrées, toutes deux avec le nom d'hôte labex-vm. Cela est dû au fait que votre machine virtuelle unique agit comme deux nœuds dans le swarm : un nœud manager et un nœud worker.

  • Le nœud dont le MANAGER STATUS est Leader est le nœud manager que vous avez initialisé dans la première étape.
  • Le nœud sans MANAGER STATUS indiqué est le nœud worker que vous avez rejoint dans la deuxième étape.

Notez l'ID du nœud worker. Vous aurez besoin de cet ID à l'étape suivante pour le promouvoir en nœud manager. L'ID est un identifiant unique pour chaque nœud dans le swarm.

Promouvoir le nœud worker en nœud manager

Dans l'étape précédente, vous avez listé les nœuds du swarm et identifié le nœud worker par son ID et l'absence d'un MANAGER STATUS. Maintenant, vous allez promouvoir ce nœud worker en nœud manager. Promouvoir un nœud worker en nœud manager augmente le nombre de nœuds manager dans votre swarm, ce qui est important pour la haute disponibilité et la tolérance aux pannes dans un environnement de production.

Pour promouvoir un nœud, vous utilisez la commande docker node promote suivie de l'ID du nœud que vous souhaitez promouvoir. Vous avez obtenu l'ID du nœud worker à l'étape précédente.

Remplacez WORKER_NODE_ID par l'ID réel de votre nœud worker.

docker node promote WORKER_NODE_ID

Après avoir exécuté la commande, vous devriez voir une sortie confirmant que le nœud a été promu :

Node WORKER_NODE_ID was promoted to a manager.

Cela indique que le nœud qui était précédemment un nœud worker est maintenant également un nœud manager dans votre swarm. Votre swarm dispose maintenant de deux nœuds manager (bien qu'ils soient tous les deux exécutés sur la même machine virtuelle physique dans cet environnement simulé).

Vérifier le nouveau rôle du nœud

Dans l'étape précédente, vous avez promu le nœud worker en nœud manager. Maintenant, vérifions que le rôle du nœud a été mis à jour avec succès en listant à nouveau les nœuds du swarm.

Utilisez la commande docker node ls pour lister les nœuds.

docker node ls

Cette fois, vous devriez voir une sortie similaire à celle-ci :

ID                            HOSTNAME            STATUS    AVAILABILITY   MANAGER STATUS   ENGINE VERSION
xxxxxxxxxxxx                  labex-vm            Ready     Active         Leader           20.10.21
yyyyyyyyyyyy                  labex-vm            Ready     Active         Reachable        20.10.21

Remarquez que le nœud qui était précédemment listé sans MANAGER STATUS affiche maintenant Reachable sous MANAGER STATUS. Cela confirme que le nœud a été promu avec succès et est maintenant reconnu comme un nœud manager par le swarm. Le nœud avec le statut Leader est le manager principal, tandis que le nœud avec le statut Reachable est un manager secondaire.

Avoir plusieurs nœuds manager dans un swarm offre une redondance. Si le nœud manager leader devient indisponible, un autre nœud manager peut prendre son rôle, garantissant le fonctionnement continu du swarm.

Résumé

Dans ce laboratoire (lab), vous avez appris à initialiser un Docker Swarm sur un seul nœud, en le faisant devenir le premier manager. Vous avez ensuite pratiqué l'ajout d'un nœud worker à ce swarm, élargissant ainsi le cluster. Le laboratoire vous a guidé à travers la liste des nœuds du swarm pour identifier le nœud worker nouvellement ajouté. Enfin, vous avez effectué l'action clé de promouvoir le nœud worker en nœud manager en utilisant la commande docker node promote et vérifié le changement de rôle réussi.