Keepalived est un démon système qui surveille en permanence les services ou les systèmes et assure une haute disponibilité en cas de panne. Si un nœud est en panne, le deuxième nœud servira les ressources. Keepalived est utilisé pour le basculement IP entre deux serveurs . Ses facilités d'équilibrage de charge et de haute disponibilité pour les infrastructures basées sur Linux. Il fonctionnait sur le protocole VRRP (Virtual Router Redundancy Protocol).
Habituellement, nous installons et configurons Keepalived sur deux serveurs avec une adresse IP généralement appelée VIP (Virtual IP).
Nous allons montrer l'installation et la configuration des deux serveurs un par un.
Prérequis :
Installez HA Proxy pour que Keepalived fonctionne en situation de sécurité intégrée.
Nous installerons les bibliothèques prérequises avant d'installer Keepalived.
yum -y install kernel-headers kernel-devel
Installez Keepalived :
Installez keepalived en saisissant la commande suivante sur les deux machines :
yum -y install keepalived
Configuration du serveur maître :
Ouvrez le fichier de configuration de keepalived dans le serveur MASTER.
nano /etc/keepalived/keepalived.conf
Ajoutez la configuration suivante :
! Configuration File for keepalived
global_defs {
}
vrrp_script haproxy {
script "pgrep haproxy" # check the haproxy process
interval 2 # every 2 seconds
timeout 1 # add 2 points if OK
}
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 51
priority 101
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.7.40
}
track_script {
haproxy
}
}
L'adresse IP virtuelle qui sera attribuée à l'interface ens33 sera la suivante :
Configurations du serveur de sauvegarde :
Ouvrez le fichier de configuration sur le serveur de sauvegarde.
nano /etc/keepalived/keepalived.conf
Saisissez la configuration suivante dans le serveur de sauvegarde :
! Configuration File for keepalived
global_defs {
}
vrrp_script haproxy {
script "killall -0 haproxy" # check the haproxy process
interval 2 # every 2 seconds
timeout 1 # add 2 points if OK
}
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.7.40
}
track_script {
haproxy
}
}
Démarrez et activez Keepalived sur les deux serveurs :
systemctl start keepalived.service
systemctl enable keepalived.service
systemctl status keepalived.service
Comme vous pouvez le voir ci-dessus, l'adresse IP virtuelle est allouée sur ens33 est 192.168.7.40 et écoutera le trafic provenant de cette adresse IP. De même, comme sa priorité est 101, c'est donc l'état maître.
Ci-dessous est l'état de la machine de sauvegarde.
Désormais, si le maître tombe en panne, le serveur de sauvegarde deviendra le maître car sa priorité sera plus élevée et les temps d'arrêt seront minimaux.
lorsque le maître se lève, la machine de sauvegarde entre automatiquement en état de sauvegarde.