Comment utiliser la commande docker swarm join pour ajouter des nœuds

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 à ajouter des nœuds à un swarm Docker existant en utilisant la commande docker swarm join. Nous aborderons le processus d'ajout d'un nœud en tant que worker (travailleur), qui exécute les tâches assignées par les managers (gestionnaires), et en tant que manager, qui participe à la gestion du swarm.

Vous explorerez également le paramètre --availability et comprendrez comment l'utiliser lors de l'ajout de nœuds pour contrôler leur disponibilité initiale au sein du swarm. Ce laboratoire pratique vous offrira une expérience concrète des étapes essentielles pour étendre votre cluster Docker Swarm.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/NetworkOperationsGroup(["Network Operations"]) docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker/ContainerOperationsGroup -.-> docker/run("Run a Container") docker/ContainerOperationsGroup -.-> docker/ps("List Running Containers") docker/ContainerOperationsGroup -.-> docker/exec("Execute Command in Container") docker/NetworkOperationsGroup -.-> docker/network("Manage Networks") subgraph Lab Skills docker/run -.-> lab-555241{{"Comment utiliser la commande docker swarm join pour ajouter des nœuds"}} docker/ps -.-> lab-555241{{"Comment utiliser la commande docker swarm join pour ajouter des nœuds"}} docker/exec -.-> lab-555241{{"Comment utiliser la commande docker swarm join pour ajouter des nœuds"}} docker/network -.-> lab-555241{{"Comment utiliser la commande docker swarm join pour ajouter des nœuds"}} end

Ajouter un nœud à un swarm en tant que worker

Dans cette étape, nous apprendrons à ajouter un nœud à un swarm Docker existant en tant que worker (travailleur). Un nœud worker est une machine qui exécute les services déployés sur le swarm. Il reçoit et exécute les tâches assignées par les nœuds managers (gestionnaires).

Avant d'ajouter un nœud à un swarm, vous devez avoir un nœud manager de swarm Docker en cours d'exécution. Pour ce laboratoire, nous supposons qu'un swarm est déjà initialisé et que vous disposez du jeton d'ajout (join token) pour les nœuds workers.

Tout d'abord, simulons l'obtention d'un jeton d'ajout. Dans un scénario réel, vous obtiendriez ce jeton à partir du nœud manager en utilisant la commande docker swarm join-token worker. Pour ce laboratoire, nous utiliserons un jeton fictif.

Supposons que la commande d'ajout fournie par le manager soit similaire à celle-ci :

docker swarm join --token SWMTKN-1-abcdefghijklmnopqrstuvwxyz-1234567890abcdef --advertise-addr <THIS_NODE_IP> <MANAGER_IP>:2377

Dans cette commande :

  • docker swarm join : C'est la commande pour ajouter un nœud à un swarm.
  • --token SWMTKN-1-abcdefghijklmnopqrstuvwxyz-1234567890abcdef : C'est le jeton unique qui authentifie le nœud auprès du swarm.
  • --advertise-addr <THIS_NODE_IP> : Ce paramètre spécifie l'adresse IP que le nœud en cours d'ajout utilisera pour s'annoncer aux autres nœuds du swarm. Remplacez <THIS_NODE_IP> par l'adresse IP réelle du nœud que vous ajoutez.
  • <MANAGER_IP>:2377 : C'est l'adresse d'un nœud manager dans le swarm. Le nœud en cours d'ajout se connecte à cette adresse pour rejoindre le swarm. Remplacez <MANAGER_IP> par l'adresse IP réelle d'un nœud manager. Le port par défaut du swarm est 2377.

Étant donné que nous travaillons dans un environnement de machine virtuelle unique pour ce laboratoire, nous allons simuler le processus d'ajout en utilisant une commande simplifiée. Nous utiliserons 127.0.0.1 comme adresse IP du manager et un jeton fictif.

Exécutez la commande suivante pour simuler l'ajout au swarm en tant que worker. Notez que cette commande n'ajoutera pas réellement un nœud à un véritable swarm dans cette configuration de machine virtuelle unique, mais elle illustre la structure de la commande.

docker swarm join --token SWMTKN-1-abcdefghijklmnopqrstuvwxyz-1234567890abcdef 127.0.0.1:2377

Vous devriez voir un message indiquant que le nœud tente de rejoindre le swarm. Dans un scénario réel, si l'ajout est réussi, vous verriez un message du type "Ce nœud a rejoint le swarm en tant que worker."

Ajouter un nœud à un swarm en tant que manager

Dans cette étape, nous apprendrons à ajouter un nœud à un swarm Docker existant en tant que manager (gestionnaire). Les nœuds managers gèrent les tâches de gestion du swarm, telles que la maintenance de l'état du swarm, la planification des services et la gestion des opérations au niveau du swarm. Un swarm peut avoir plusieurs nœuds managers pour assurer une haute disponibilité.

De la même manière que pour l'ajout en tant que worker (travailleur), vous avez besoin d'un jeton d'ajout (join token) provenant d'un nœud manager existant pour vous ajouter en tant que manager. La commande pour obtenir le jeton d'ajout pour un manager à partir d'un nœud manager existant est docker swarm join-token manager.

Supposons que la commande d'ajout pour un nœud manager soit similaire à celle-ci :

docker swarm join --token SWMTKN-1-abcdefghijklmnopqrstuvwxyz-1234567890abcdef --advertise-addr <THIS_NODE_IP> <MANAGER_IP>:2377

Notez que la structure de la commande est la même que pour l'ajout en tant que worker, mais le jeton est différent. Le jeton pour l'ajout d'un nœud manager est unique et confère des privilèges plus élevés.

Pour ce laboratoire, nous allons de nouveau simuler le processus d'ajout dans notre environnement de machine virtuelle unique en utilisant un jeton de manager fictif et 127.0.0.1 comme adresse IP du manager.

Exécutez la commande suivante pour simuler l'ajout au swarm en tant que manager :

docker swarm join --token SWMTKN-1-ABCDEFGHIJKLMNOPQRSTUVWXYZ-0987654321fedcba 127.0.0.1:2377

Vous devriez voir un message indiquant que le nœud tente de rejoindre le swarm. Dans un véritable swarm multi-nœuds, si l'ajout est réussi, vous verriez un message du type "Ce nœud a rejoint le swarm en tant que manager."

Comprendre et utiliser le paramètre --availability lors de l'ajout

Dans cette étape, nous allons explorer le paramètre --availability, qui peut être utilisé lors de l'ajout d'un nœud à un swarm Docker. Le paramètre --availability contrôle si un nœud est disponible pour la planification des tâches. Cela est particulièrement utile pour gérer la maintenance d'un nœud ou pour mettre temporairement un nœud hors service sans le supprimer du swarm.

Le paramètre --availability peut prendre l'une des trois valeurs suivantes :

  • active : Le nœud est disponible pour la planification des tâches. C'est l'état par défaut pour un nœud nouvellement ajouté.
  • 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 disponibles.

Lors de l'ajout d'un nœud, vous pouvez spécifier sa disponibilité initiale. Par exemple, pour ajouter un nœud en tant que worker avec sa disponibilité définie sur drain, vous utiliseriez une commande comme celle-ci :

docker swarm join --token SWMTKN-1-abcdefghijklmnopqrstuvwxyz-1234567890abcdef --availability drain --advertise-addr <THIS_NODE_IP> <MANAGER_IP>:2377

Pour ce laboratoire, nous allons simuler l'ajout d'un nœud avec le paramètre --availability drain. Encore une fois, nous utiliserons un jeton fictif et 127.0.0.1 comme adresse IP du manager dans notre environnement de machine virtuelle unique.

Exécutez la commande suivante pour simuler l'ajout au swarm avec la disponibilité définie sur drain :

docker swarm join --token SWMTKN-1-abcdefghijklmnopqrstuvwxyz-1234567890abcdef --availability drain 127.0.0.1:2377

Vous devriez voir un message indiquant que le nœud tente de rejoindre le swarm. Dans un véritable swarm, le nœud rejoindrait avec sa disponibilité définie sur drain, ce qui signifie qu'il ne serait pas planifié pour de nouvelles tâches et que les tâches existantes seraient déplacées.

Résumé

Dans ce laboratoire, nous avons appris à utiliser la commande docker swarm join pour ajouter des nœuds à un swarm Docker existant. Nous avons exploré le processus d'ajout d'un nœud en tant que worker (travailleur), en comprenant le rôle du jeton d'ajout (join token), de l'adresse du manager (gestionnaire) et du paramètre --advertise-addr. Nous avons également examiné comment ajouter un nœud en tant que manager, ce qui nécessite un jeton d'ajout différent obtenu à partir du nœud manager. Enfin, nous avons appris à propos du paramètre --availability et de son utilisation lors du processus d'ajout pour contrôler la disponibilité initiale d'un nœud au sein du swarm.