Introduction
Docker Swarm est un outil puissant pour orchestrer et gérer des conteneurs Docker à grande échelle. Dans ce tutoriel, vous apprendrez comment ajouter de nouveaux nœuds à votre cluster Docker Swarm existant, ce qui vous permettra d'étendre votre infrastructure et d'améliorer la disponibilité et la résilience de vos applications.
Comprendre les bases de Docker Swarm
Qu'est-ce que Docker Swarm ?
Docker Swarm est une solution de clustering et de planification native pour les conteneurs Docker. Il vous permet de gérer un groupe de moteurs Docker, appelé essaim, comme un seul moteur Docker virtuel. Cela signifie que vous pouvez déployer vos applications sur plusieurs hôtes, garantissant une haute disponibilité et une évolutivité.
Concepts clés de Docker Swarm
- Nœud : Un nœud est une instance du moteur Docker participant à l'essaim. Les nœuds peuvent être des gestionnaires ou des travailleurs.
- Nœud gestionnaire : Les nœuds gestionnaires sont responsables de la gestion de l'essaim, y compris la planification des tâches, la maintenance de l'état du cluster et la gestion des basculements.
- Nœud travailleur : Les nœuds travailleurs reçoivent et exécutent les tâches distribuées par les nœuds gestionnaires.
- Service : Un service définit l'état souhaité d'un ensemble de tâches (conteneurs) dans l'essaim. Les services sont les blocs de construction pour déployer des applications dans un essaim.
- Tâche : Une tâche est un conteneur unique qui fait partie d'un service et est programmée pour s'exécuter sur un nœud.
Avantages de Docker Swarm
- Simplicité : Docker Swarm est intégré au moteur Docker, ce qui le rend facile à configurer et à gérer.
- Haute disponibilité : Swarm fournit un équilibre de charge et un basculement automatiques, garantissant la haute disponibilité de vos applications.
- Évolutivité : Vous pouvez facilement mettre à l'échelle vos applications en ajoutant ou en supprimant des nœuds de l'essaim.
- Sécurité : Docker Swarm utilise des fonctionnalités de sécurité intégrées, telles que la communication chiffrée et le contrôle d'accès basé sur les rôles.
Démarrer avec Docker Swarm
Pour commencer avec Docker Swarm, vous devez configurer un cluster Swarm. Cela implique d'initialiser un nœud gestionnaire, puis d'ajouter des nœuds travailleurs à l'essaim. Voyons un exemple avec Ubuntu 22.04 :
## Initialiser l'essaim sur un nœud gestionnaire
## Rejoindre un nœud travailleur à l'essaim
Une fois que vous avez configuré un essaim, vous pouvez commencer à déployer vos applications en tant que services.
Ajout de nœuds à un cluster Docker Swarm
Adhésion de nœuds travailleurs à l'essaim
Pour ajouter des nœuds travailleurs à votre cluster Docker Swarm, vous pouvez utiliser la commande docker swarm join. Cette commande nécessite le jeton d'adhésion, que vous pouvez obtenir à partir du nœud gestionnaire.
Sur le nœud gestionnaire, exécutez la commande suivante pour obtenir le jeton d'adhésion :
docker swarm join-token worker
Cela affichera une commande que vous pouvez utiliser pour joindre un nœud travailleur à l'essaim, par exemple :
docker swarm join --token SWMTKN-1-49nj1cmql0jkz5s7riia...
Maintenant, sur le nœud travailleur, exécutez la commande fournie par le nœud gestionnaire pour joindre l'essaim.
Adhésion de nœuds gestionnaires à l'essaim
Vous pouvez également ajouter des nœuds gestionnaires à votre cluster Docker Swarm. Cela est utile pour augmenter la tolérance aux pannes et la haute disponibilité de votre essaim.
Pour ajouter un nouveau nœud gestionnaire, exécutez la commande suivante sur le nouveau nœud :
docker swarm join --token SWMTKN-1-61ztec9roubhglb7xbc...
Le jeton utilisé pour joindre le nœud gestionnaire peut être obtenu à partir d'un nœud gestionnaire existant à l'aide de la commande suivante :
docker swarm join-token manager
Vérification de l'état des nœuds
Après avoir ajouté des nœuds à l'essaim, vous pouvez utiliser la commande docker node ls pour afficher l'état de tous les nœuds du cluster. Cela vous montrera le rôle de chaque nœud (gestionnaire ou travailleur) et son état actuel.
docker node ls
Cela affichera un tableau avec des informations sur chaque nœud de l'essaim.
Suppression de nœuds de l'essaim
Si vous devez supprimer un nœud de l'essaim, vous pouvez utiliser la commande docker node rm. Par exemple, pour supprimer un nœud travailleur :
docker node rm worker-node
Pour supprimer un nœud gestionnaire, vous devrez d'abord le rétrograder en nœud travailleur, puis le supprimer :
docker node demote manager-node
docker node rm manager-node
N'oubliez pas de planifier soigneusement la suppression des nœuds, car cela peut avoir un impact sur la disponibilité et la résilience de votre essaim.
Gestion et surveillance des nœuds Swarm
Surveillance des nœuds Swarm
Pour surveiller l'état et la santé de vos nœuds Docker Swarm, vous pouvez utiliser les commandes suivantes :
## Lister tous les nœuds de l'essaim
docker node ls
## Inspecter un nœud spécifique
docker node inspect node-name
## Afficher les métriques du nœud
docker node ps node-name
La commande docker node ls vous donne un aperçu de tous les nœuds de votre essaim, y compris leur rôle (gestionnaire ou travailleur), leur état et leur disponibilité.
La commande docker node inspect fournit des informations détaillées sur un nœud spécifique, telles que son adresse IP, ses ressources et ses étiquettes.
La commande docker node ps vous permet d'afficher les tâches et conteneurs en cours d'exécution sur un nœud spécifique.
Gestion des nœuds Swarm
En plus de la surveillance, vous pouvez également gérer les nœuds de votre cluster Docker Swarm à l'aide de diverses commandes :
## Promouvoir un nœud travailleur en nœud gestionnaire
docker node promote worker-node
## Rétrograder un nœud gestionnaire en nœud travailleur
docker node demote manager-node
## Mettre à jour les étiquettes du nœud
docker node update --label-add label=value node-name
## Mettre un nœud en maintenance (empêcher la planification de nouvelles tâches)
docker node update --availability drain node-name
## Remettre un nœud actif
docker node update --availability active node-name
Les commandes docker node promote et docker node demote vous permettent de modifier le rôle d'un nœud au sein de l'essaim.
Vous pouvez utiliser la commande docker node update pour ajouter, modifier ou supprimer des étiquettes sur un nœud. Les étiquettes peuvent être utilisées pour appliquer des contraintes ou des préférences spécifiques lors de la planification des tâches.
La commande docker node update --availability drain vous permet de mettre temporairement un nœud hors service, empêchant la planification de nouvelles tâches dessus. Cela peut être utile pour effectuer des opérations de maintenance ou des mises à jour sur un nœud.
Sauvegarde et restauration de l'état Swarm
Il est important de sauvegarder régulièrement l'état de votre cluster Docker Swarm pour vous assurer de pouvoir récupérer en cas de problème ou de panne. Vous pouvez utiliser la commande docker swarm init --force-new-cluster pour initialiser un nouvel essaim à l'aide des données de sauvegarde.
En suivant ces bonnes pratiques pour gérer et surveiller vos nœuds Docker Swarm, vous pouvez garantir la fiabilité et la résilience de vos applications conteneurisées.
Résumé
À la fin de ce tutoriel, vous aurez une compréhension approfondie de la manière d'ajouter des nœuds à un cluster Docker Swarm. Vous serez capable d'étendre votre infrastructure Docker, garantissant que vos applications peuvent gérer des charges de travail accrues et assurer une haute disponibilité de vos services. Ces connaissances seront précieuses pour la construction et la gestion de vos solutions basées sur Docker.



