TUTOS.EU

Mettre 2 serveurs Linux en cluster avec keepalived

Notez que l'article est un peu sommaire et mérite certainement d'être complété.

Sinon, vous avez par exemple 2 serveurs HAProxy et vous voulez assurer une redondance en créant une VIP, cad une Adresse IP virtuelle, pour que, quand un des 2 serveurs tombe, cela soit l'autre qui reprenne la main. Pour cela vous pouvez utiliser keepalived.

Sur vos deux serveurs, avec une distribution de type Red Hat comme CentOs etc, installer keepalived avec

dnf install keepalived
Lien vers le fichier : cliquez ici

Relever le nom de votre interface réseau avec

ip a
Lien vers le fichier : cliquez ici

Dans cet exemple c'est enp0s3

Sur vos deux serveurs, sauvegarder la configuration d'origine puis la modifier avec

cd /etc/keepalived
cp keepalived.conf backup_keepalived.conf

nano keepalived.conf
Lien vers le fichier : cliquez ici

Sur le premier serveur, remplacer intégralement la configuration avec cet exemple tout simple.

Vous prendrez soin de remplacer d'adapter le nom de l'interface qui est ici réglé à enp0s3 avec le résultat de la commande ip a.
Adaptez également l'adresse ip qui sera utilisée pour la VIP.

vrrp_script haproxy {
        script "killall -0 haproxy"
        interval 2
        weight 2
}
vrrp_instance VI_1 {
        state MASTER
        interface enp0s3
        virtual_router_id 51
        priority 252
        advert_int 1
        virtual_ipaddress {
              192.168.0.149/24
        }
        track_script {
        haproxy
        }
}
Lien vers le fichier : cliquez ici

Sur le second serveur,  remplacer également intégralement la configuration avec la même configuration sauf pour state MASTER qui devient state BACKUP

Le service s'active avec

systemctl enable keepalived
systemctl start keepalived
Lien vers le fichier : cliquez ici

Le journal des logs se voit avec

journalctl -u keepalived
Lien vers le fichier : cliquez ici

Vous pouvez aussi avoir un état du service avec

systemctl status keepalived -l
Lien vers le fichier : cliquez ici

Sur le master, si tout va bien la carte réseau doit se voir affecter une seconde adresse, celle de la VIP

Dans notre exemple de configuration, on a mis ce bloc

vrrp_script haproxy {
        script "killall -0 haproxy"
        interval 2
        weight 2
}
Lien vers le fichier : cliquez ici

Il sert non pas à tuer le process nommé haproxy mais à surveiller qu'il existe bien, faute de quoi la vip basculera sur le noeud slave.

Ci-dessous la commande indique que le process haproxy n'a pas été trouvé.

Vous comprendrez qu'il faut adapter le nom du process à votre besoin.