Installation, configuration et première utilisation d’un cluster Docker Swarm
- Mise à jour du système
RHEL/CentOS :
sudo dnf update -y
Debian :
sudo apt-get update && sudo apt-get upgrade -y
- 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
- 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
- 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
- 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.
- Démarrer et activer Docker au démarrage
sudo systemctl enable --now docker
- 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
- 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