—
Déployer un cluster Docker Swarm avec GlusterFS et Keepalived : guide rapide étape par étape
Dans cet article, je vous guide dans le déploiement d’un cluster Docker Swarm haute disponibilité, avec un stockage partagé via GlusterFS et une IP virtuelle avec Keepalived. Chaque étape est détaillée pour que vous puissiez reproduire cette architecture chez vous.
—
Prérequis
3 machines ou plus (physiques ou virtuelles)
OS : Debian 11/12 ou Ubuntu 22.04 recommandé
Un accès sudo sur tous les nœuds
Une interface réseau commune (ex: eth0) sur tous les nœuds
Des noms d’hôtes configurés proprement
—
Étape 1 – Configuration réseau de base
Modifier /etc/hosts
Sur chaque nœud, éditez le fichier /etc/hosts pour inclure tous les nœuds :
sudo nano /etc/hosts
Ajoutez (adapter les IP/Noms) :
192.168.1.11 ds1
192.168.1.12 ds2
192.168.1.13 ds3
—
Étape 2 – Keepalived : IP virtuelle flottante
Nous allons créer une IP virtuelle (VIP) partagée entre deux nœuds (ds1 et ds2).
Installer Keepalived
Sur les deux nœuds concernés :
sudo apt install keepalived
Configuration sur le nœud principal (ds1)
sudo nano /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass secret
}
virtual_ipaddress {
192.168.1.100
}
}
Configuration sur le nœud secondaire (ds2)
Changer state en BACKUP et priority à 90.
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 51
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass secret
}
virtual_ipaddress {
192.168.1.100
}
}
Démarrer Keepalived :
sudo systemctl enable –now keepalived
—
Étape 3 – Installation de GlusterFS
Nous allons créer un volume partagé et répliqué.
Installer GlusterFS
Sur chaque nœud :
sudo apt install glusterfs-server -y
sudo systemctl enable –now glusterd
Préparer les briques de stockage
Sur chaque nœud :
sudo mkdir -p /mnt/brick/volume1
(Si possible, utiliser un disque dédié monté ici)
Former le cluster
Depuis ds1 :
gluster peer probe ds2
gluster peer probe ds3
Vérifier :
gluster peer status
Créer le volume GlusterFS
Toujours sur ds1 :
gluster volume create docker-volume replica 3 \
ds1:/mnt/brick/volume1 \
ds2:/mnt/brick/volume1 \
ds3:/mnt/brick/volume1
gluster volume start docker-volume
Monter le volume
Sur chaque nœud :
sudo mkdir -p /mnt/docker
sudo mount -t glusterfs ds1:/docker-volume /mnt/docker
Pour rendre cela persistant :
echo « ds1:/docker-volume /mnt/docker glusterfs defaults,_netdev 0 0 » | sudo tee -a /etc/fstab
—
Étape 4 – Installation de Docker
Sur chaque nœud :
sudo apt update
sudo apt install -y \
ca-certificates \
curl \
gnupg \
lsb-release
Ajouter le dépôt officiel Docker :
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg –dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo \
« deb [arch=$(dpkg –print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] \
https://download.docker.com/linux/debian \
$(lsb_release -cs) stable » | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Installer Docker :
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io -y
sudo systemctl enable docker –now
—
Étape 5 – Initialisation de Docker Swarm
Initialiser le cluster (sur ds1)
docker swarm init –advertise-addr 192.168.1.11
Note le token donné pour l’ajouter sur les autres nœuds.
Joindre les autres nœuds (ds2, ds3)
docker swarm join –token SWMTKN-… 192.168.1.11:2377
Promouvoir en manager (si besoin) :
docker node promote ds2
docker node promote ds3
—
Étape 6 – Installation de Portainer
Portainer permet de gérer ton cluster via une interface web.
Créer un volume pour Portainer
docker volume create portainer_data
Déployer Portainer dans Swarm
docker service create \
–name portainer \
–publish 9000:9000 \
–constraint ‘node.role == manager’ \
–mount type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock \
–mount type=volume,src=portainer_data,dst=/data \
–replicas=1 \
portainer/portainer-ce:latest
Accessible via : http://<IP-VIRTUELLE>:9000
—
Et après ?
Déploie tes stacks dans /mnt/docker
Utilise docker stack deploy pour les lancer
Ajoute des nœuds ou services à volonté
Pense à superviser ton cluster et tes volumes
Étiquette : Systèmes distribués
-
Déploiement d’un cluster Docker Swarm
-
#interopérabilité
Comment Fonctionne l’Interopérabilité dans le Fediverse
L’interopérabilité dans le Fediverse permet à différentes plateformes de communiquer entre elles, un peu comme si elles parlaient la même langue. Voici comment cela fonctionne de manière simple :
Les Protocoles : Les Langages Communs
1. ActivityPub : C’est le « langage » le plus utilisé dans le Fediverse. Il permet aux plateformes de se parler et d’échanger des informations.
– Serveurs Connectés : Chaque plateforme (comme Mastodon ou Pleroma) a son propre serveur. Grâce à ActivityPub, ces serveurs peuvent se parler entre eux.
– Partage d’Informations : Quand quelqu’un publie un message, ce message est envoyé à tous ses abonnés, même s’ils utilisent une autre plateforme.
– Interactions : Vous pouvez suivre des gens, aimer ou commenter leurs messages, et ces actions sont visibles partout dans le Fediverse.
Comment Ça Marche ?
– Trouver les Autres : Quand vous suivez quelqu’un sur une autre plateforme, votre serveur trouve automatiquement où envoyer les messages.
– Mises à Jour : Les serveurs se parlent régulièrement pour s’assurer que tout le monde reçoit les dernières nouvelles.
– Identité Unique : Chaque utilisateur a une adresse unique (comme un nom d’utilisateur spécial) qui permet de savoir où envoyer les messages.
Exemples Simples
– Microblogging : Vous utilisez Mastodon et suivez quelqu’un sur Pleroma. Vous verrez ses messages dans votre fil d’actualité, et vice versa.
– Vidéos : Une vidéo publiée sur PeerTube peut être regardée directement depuis Mastodon ou Pleroma.
– Blogs et Réseaux Sociaux : Les utilisateurs de Friendica peuvent interagir avec des publications sur Mastodon, mélangeant blogs et réseaux sociaux.
D’Autres Exemples d’Interopérabilité
L’interopérabilité ne concerne pas que le Fediverse. D’autres systèmes utilisent aussi des « langages » communs pour se parler :
– Courriels : Les protocoles comme SMTP permettent d’envoyer et de recevoir des courriels entre différents services.
– Internet : HTTP/HTTPS permet aux sites web de fonctionner et de s’afficher dans votre navigateur.
– Transfert de Fichiers : FTP/SFTP permet de transférer des fichiers entre votre ordinateur et un serveur.
– Appels Vidéo : SIP est utilisé pour les appels vocaux et vidéo sur Internet.
– Messagerie Instantanée : XMPP permet de discuter en temps réel entre différentes applications.
– Authentification : OAuth et OpenID Connect permettent de se connecter à des applications sans partager son mot de passe.
– Communication en Temps Réel : WebRTC permet les appels vidéo et le partage d’écran directement depuis le navigateur.
Avantages de l’Interopérabilité
– Diversité et Choix : Vous pouvez choisir la plateforme qui vous convient tout en restant connecté à un réseau plus large.
– Résilience : Si une plateforme a des problèmes, vous pouvez toujours interagir avec vos contacts sur d’autres plateformes.
– Innovation : Les développeurs peuvent créer de nouvelles fonctionnalités qui fonctionnent avec les plateformes existantes.
– Communauté et Collaboration : Les communautés peuvent se former et collaborer au-delà des frontières des plateformes individuelles.
Inconvénients de l’Interopérabilité
– Complexité de Modération : Il peut être difficile de modérer les contenus indésirables lorsque les informations proviennent de différentes sources.
– Gestion des Identités : La gestion des identités et des autorisations peut devenir complexe dans un environnement décentralisé.
– Problèmes Techniques : Les différences techniques entre les plateformes peuvent parfois entraîner des problèmes de compatibilité.
En résumé, l’interopérabilité permet à différents systèmes de communiquer facilement, rendant notre utilisation d’Internet plus fluide et connectée, tout en présentant certains défis à surmonter.