Docker Swarm est un outil puissant pour l’orchestration de conteneurs. Il simplifie la gestion et l’orchestration de conteneurs sur plusieurs serveurs, ce qui en fait un outil indispensable pour les développeurs et les administrateurs système. Dans cet article, nous vous guiderons à travers le processus d’installation de Docker Swarm sur Ubuntu 22.04.
Introduction à Docker Swarm
Docker Swarm est un outil d’orchestration de conteneurs open source qui permet de créer et de déployer un cluster de nœuds Docker sur plusieurs serveurs. Il offre des fonctionnalités telles que le découpage de tâches, la distribution de la charge, la tolérance aux pannes et la récupération automatique.
Ouverture des ports pour Docker Swarm
Pour commencer, vous devez ouvrir certains ports qui seront utilisés par Docker Swarm sur tous vos serveurs. Voici les étapes pour ouvrir les ports nécessaires :
- Ajoutez le profil d’application OpenSSH et ouvrez le port SSH standard 22 en exécutant la commande suivante :
sudo ufw allow OpenSSH
- Activez UFW en exécutant la commande suivante :
sudo ufw enable
- Autorisez les ports 30000 à 35000 pour les services en exécutant la commande suivante :
sudo ufw allow 30000:35000/tcp
- Ouvrez les ports 2377, 7946 et 4789 pour Docker Swarm en exécutant les commandes suivantes :
sudo ufw allow 2377/tcp sudo ufw allow 7946/tcp sudo ufw allow 7946/udp sudo ufw allow 4789/udp
- Rechargez UFW et vérifiez son statut en exécutant les commandes suivantes :
sudo ufw reload sudo ufw status
Ajout du dépôt Docker
Ensuite, vous devez ajouter le dépôt Docker officiel à vos serveurs. Voici les étapes pour ajouter le dépôt Docker :
- Installez les paquets nécessaires en exécutant la commande suivante :
sudo apt install apt-transport-https ca-certificates curl gnupg lsb-release -y
- Ajoutez la clé GPG Docker et le dépôt à vos systèmes en exécutant les commandes suivantes :
sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpg echo "deb [arch=\\\\\\\\\\\\\"$(dpkg --print-architecture)\\\\\\\\\\\\\" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo \\\\\\\\\\\\\"$VERSION_CODENAME\\\\\\\\\\\\\") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
- Mettez à jour votre dépôt Ubuntu en exécutant la commande suivante :
sudo apt update
- Vous devriez maintenant avoir le dépôt Docker disponible sur vos serveurs.
Installation de Docker Engine
Maintenant que vous avez préparé vos systèmes, il est temps d’installer Docker Engine sur vos serveurs Ubuntu. Voici les étapes pour installer Docker Engine :
- Installez Docker Engine en exécutant la commande suivante :
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
- Vérifiez si le service Docker est en cours d’exécution en exécutant la commande suivante :
sudo systemctl is-enabled docker
sudo systemctl status docker
- Vous devriez voir que le service Docker est activé et en cours d’exécution sur vos serveurs.
- (Optionnel) : Si vous prévoyez d’exécuter des conteneurs Docker avec un utilisateur non root, vous devez ajouter votre utilisateur au groupe Docker. Cela permet à l’utilisateur d’exécuter la commande Docker et de démarrer des conteneurs. Exécutez la commande suivante pour ajouter votre utilisateur au groupe Docker :
sudo usermod -aG docker shapehost
- Connectez-vous en tant qu’utilisateur non root et vérifiez votre configuration Docker en exécutant la commande suivante :
su- shapehost docker run hello-world
- Si la configuration est réussie, vous devriez voir la sortie du conteneur “hello-world”.
Initialisation de Docker Swarm
Maintenant que Docker Engine est installé sur vos serveurs, il est temps d’initialiser Docker Swarm et de configurer le gestionnaire de Swarm et les nœuds de travail. Voici comment procéder :
- Pour initialiser Docker Swarm, exécutez la commande suivante sur le serveur Swarm Master/Manager :
docker swarm init --advertise-addr <IP_Manager> --default-addr-pool <IP_range_for_containers>
Remplacez <IP_Manager>
par l’adresse IP du serveur Swarm Master/Manager et <IP_range_for_containers>
par la plage d’adresses IP pour les conteneurs.
- Si le processus d’initialisation est réussi, vous verrez le jeton généré pour ajouter des nœuds à Docker Swarm.
- Pour vérifier l’état du mode Swarm, exécutez la commande suivante :
docker info
Si le mode Swarm est activé, vous devriez voir les détails de l’ID du nœud, du gestionnaire et du nœud.
- Pour vérifier la liste des nœuds dans Docker Swarm, exécutez la commande suivante :
docker node ls
À ce stade, vous devriez seulement voir le nœud Swarm Master/Manager.
Ajout de nœuds de travail à Docker Swarm
Avec Docker Swarm initialisé, il est maintenant temps d’ajouter des nœuds de travail au Swarm. Voici les étapes pour ajouter des nœuds de travail :
- Exécutez la commande suivante sur le serveur Swarm Master/Manager pour afficher le jeton généré pour ajouter des nœuds de travail :
docker swarm join-token worker
Notez le jeton affiché.
- Passez au serveur de nœud de travail et exécutez la commande suivante pour rejoindre Docker Swarm en tant que nœud de travail :
docker swarm join --token <token> <IP_Manager>:2377
Remplacez <token>
par le jeton que vous avez obtenu à l’étape précédente et <IP_Manager>
par l’adresse IP du serveur Swarm Master/Manager.
- Si le processus est réussi, vous verrez la sortie “Ce nœud a rejoint un swarm en tant que worker”.
- Revenez au serveur Swarm Master/Manager et exécutez la commande suivante pour vérifier la liste des nœuds disponibles dans Docker Swarm :
docker node ls
Vous devriez maintenant voir le nœud Swarm Manager/Worker et le nouveau nœud de travail ajouté.
Exécution de services dans Docker Swarm
Maintenant que votre Docker Swarm est en cours d’exécution avec les nœuds nécessaires, il est temps de déployer et d’exécuter des services dans le Swarm. Dans cet exemple, nous allons déployer un simple service HTTP avec l’image Nginx. Voici les étapes pour déployer un service :
- Créez un nouveau service dans Docker Swarm en exécutant la commande suivante sur le serveur Swarm Master/Manager :
docker service create --replicas 1 --name test-nginx -p 30001:80 nginx:alpine
Cette commande crée un nouveau service nommé “test-nginx” avec 1 réplique, ouvre le port 30001 et utilise l’image nginx:alpine.
- Vérifiez les détails du service “test-nginx” en exécutant la commande suivante :
docker service inspect test-nginx
Vous verrez des informations détaillées sur le service.
- Vérifiez la liste des services Docker dans le Swarm en exécutant la commande suivante :
docker service ls
Si tout se passe bien, vous devriez voir le service “test-nginx” en cours d’exécution sur le nœud Swarm Manager/Worker.
- Accédez au service “test-nginx” en utilisant l’adresse IP de l’hôte et le port 30001 avec la commande suivante :
curl<IP_Manager>:30001
Remplacez <IP_Manager>
par l’adresse IP du nœud Swarm Manager/Worker.
- Vous devriez voir le code source de index.html et les détails des en-têtes HTTP.
Mise à l’échelle des services dans Docker Swarm
L’un des principaux avantages de Docker Swarm est la possibilité de mettre à l’échelle les services facilement. Voici comment mettre à l’échelle le service “test-nginx” dans votre Docker Swarm :
- Mettez à l’échelle le service “test-nginx” à 3 répliques en exécutant la commande suivante sur le serveur Swarm Master/Manager :
docker service scale test-nginx=3
- Vérifiez le service “test-nginx” en exécutant la commande suivante :
docker service ps test-nginx
Vous devriez voir que le service est en cours d’exécution sur tous les nœuds de travail disponibles.
- Passez à l’un des terminaux des nœuds de travail et exécutez la commande suivante pour vérifier que le service “test-nginx” est en cours d’exécution :
curl<IP_Worker>:30001
Remplacez <IP_Worker>
par l’adresse IP du nœud de travail.
- Si tout est correctement configuré, vous devriez voir le conteneur qui exécute le service “test-nginx”.
Suppression des services dans Docker Swarm
Pour nettoyer votre environnement et supprimer les services de votre Docker Swarm, suivez ces étapes :
- Supprimez le service “test-nginx” en exécutant la commande suivante sur le serveur Swarm Master/Manager :
docker service rm test-nginx
- Vérifiez la liste des services disponibles dans Docker Swarm en exécutant la commande suivante :
docker service ls
Le service “test-nginx” ne devrait plus être listé.
- Enfin, supprimez l’image nginx:alpine et vérifiez la liste des images téléchargées sur chaque serveur en exécutant les commandes suivantes :
docker rmi nginx:alpine
docker images
En suivant ce guide, vous avez appris comment installer Docker Swarm sur Ubuntu 22.04, initialiser Docker Swarm, ajouter des nœuds de travail, déployer et exécuter des services, mettre à l’échelle les services et supprimer les services. Docker Swarm est un outil puissant qui simplifie l’orchestration de conteneurs, ce qui en fait un choix idéal pour les développeurs et les administrateurs système.
Si vous cherchez des solutions d’hébergement cloud fiables et évolutives, vous devriez envisager les services Linux SSD VPS de Shape.host. Shape.host offre des services d’hébergement cloud de premier ordre avec une performance et une sécurité de premier ordre. Amenez votre entreprise au niveau supérieur avec les puissantes solutions d’hébergement de Shape.host.