Docker Swarm

Docker Swarm

Installation, configuration et première utilisation d’un cluster Docker Swarm

  1. Mise à jour du système

RHEL/CentOS :

sudo dnf update -y

Debian :

sudo apt-get update && sudo apt-get upgrade -y
  1. Ajout du dépôt Docker

On ajoute le dépôt de Docker à notre système :

RHEL/CentOS :

sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

Debian :

Mettez à jour votre système et installez les paquets requis :

sudo apt-get update
sudo apt-get install -y ca-certificates curl

Ajoutez la clé GPG de Docker :

sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

Ajoutez le dépôt Docker aux sources APT :

echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
  1. Gestion des paquets Podman et Buildah

Uniquement pour RHEL/CentOS

Si vous utilisez une distribution RHEL-like, vérifiez si les paquets Podman et Buildah sont présents afin d’éviter des conflits avec Docker.
Vérifiez la présence de ces paquets :

sudo rpm -qa | grep -E 'buildah|podman'

S’ils sont présents, désinstallez-les :

sudo dnf remove podman buildah -y
  1. Installation de Docker

RHEL/CentOS :

sudo dnf install docker-ce docker-ce-cli containerd.io -y

Debian :

sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  1. Configuration du stockage

Optionnel pour toutes les distributions

Je vous conseille la création d’un Volume Group ainsi qu’un Logical Volume pour au point de montage /var/lib/docker. Ce n’est pas une étape obligatoire, mais cela permet d’être plus flexible si vous deviez augmenter la taille du point de montage.

  1. Démarrer et activer Docker au démarrage
sudo systemctl enable --now docker
  1. Ouverture des ports nécessaires
  • 2377 / TCP : utilisé pour la communication entre les nœuds managers.
  • 7946 / TCP & UDP et 4789 / UDP : utilisés pour la communication entre les
    nœuds.

RHEL/CentOS avec firewalld :

sudo firewall-cmd --add-port=2377/tcp --permanent
sudo firewall-cmd --add-port=7946/tcp --permanent
sudo firewall-cmd --add-port=7946/udp --permanent
sudo firewall-cmd --add-port=4789/udp --permanent
sudo firewall-cmd --reload

Debian avec ufw (si ce dernier est installé) :

sudo ufw allow 2377/tcp
sudo ufw allow 7946/tcp
sudo ufw allow 7946/udp
sudo ufw allow 4789/udp
sudo ufw reload
  1. Initialiser Docker Swarm
sudo docker swarm init

Exemple de retour de commande :

Swarm initialized: current node (yxja2mk45gj7be5pjp0ggja4u) is now a manager.
To add a worker to this swarm, run the following command:
docker swarm join --token SWMTKN-1-
61hiyolcv8e41czevdnjm8gpnv9q211gqjus1qyuwrol0ac7tw-an5zrs7sewargsdbci1erngaj
192.168.1.1:2377
To add a manager to this swarm, run 'docker swarm join-token manager' and follow the
instructions.

Libre à vous d’ajouter le nombre de nœuds que vous souhaitez. Pour jouter un nœud en mode manager, exécutez la commande suivante comme indiqué dans le retour de docker swarm init :

sudo docker swarm join-token manager

Exemple de retour de commande pour ajouter un nœud manager :

To add a manager to this swarm, run the following command:
docker swarm join --token SWMTKN-1-
61hiyolcv8e41czevdnjm8gpnv9q211gqjus1qyuwrol0ac7tw-
4e2kh5m0lmhe50fuda0csmzq4 192.168.1.1:2377

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *