I. Présentation
II. L’infrastructure de test
L’infrastructure de test est constituée de deux noeuds Web001 et Web002 d’adresses IP 192.168.200.10 et .192.168.200.20. Les deux nœuds hébergent chacun un serveur web Apache.
En frontal, nous aurons un load balancer LB d’adresse IP virtuelle 10.10.10.10.
III. Installation et configuration de base
Sur les deux machines LVS001 et LVS002 constituant le LB installez les packages nécessaires, pour installer ipvsadm et keepalived, exécutez la commande :
yum install ipvsadm keepalived
Dans notre cas les paquets sont déjà installés :
Les paquets HTTP arrivant au vip sur le LVS seront transmis à Web001 et Web002 avec la NAT.
Il faut donc activer le forwording sur Lvs001 et Lvs002, pour le faire, sur lvs001 et lvs002 exécutez la commande :
echo 'net.ipv4.ip_forward =1 >> /etc/sysctl.con
Pour recharger la configuration, exécuter la commande :
sysctl -p
Ajouter le fichier /etc/sysconfig/ipvsadm sur les deux serveurs
Démarrer et activer le service ipvsadm sur les deux serveurs Lvs001 et Lvs002 :
systemcytl start ipvsadm && systemctl enable ipvsadm
Changer la passerelle par défaut vers l’adresse IP interne de LVS sur les deux serveurs Web (Il est 192.168.200.1 sur l’exemple).
Mise en place
Éditer le fichier /etc/keepalived/keepalived.conf, qui sera à quelques détails près identique sur les deux nœuds du cluster.
Garder une copier originale du fichier keepalived.conf :
mv /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.org
Editer le fichier keepalived.conf comme suit :
global_defs {
notification_email {
root@haboulai-lab.com
}
notification_email_from lvs001@haboulai-lab.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_Server
}
vrrp_instance VI_1 {
state MASTER
# monitored interface
interface eno33554984
# virtual router's ID
virtual_router_id 51
# set priority (change this value on each server)
# (large number means priority is high)
priority 100
nopreempt
# VRRP sending interval
advert_int 1
# authentication info between Keepalived servers
authentication {
auth_type PASS
auth_pass password
}
virtual_ipaddress {
# virtual IP address
192.168.200.254/24 dev eno16777736
10.10.10.10/24 dev eno33554984 brd 10.10.10.255 scope global
}
}
virtual_server 10.10.10.10 80 {
# monitored interval
delay_loop 3
# distribution method
lvs_sched rr
# routing method
lvs_method NAT
protocol TCP
# backend server#1
real_server 192.168.200.10 80 {
weight 1
HTTP_GET {
url {
# monitored path
path /
# status code for normally state
status_code 200
}
# timeout(sec)
connect_timeout 3
}
}
# backend server#2
real_server 192.168.200.20 80 {
weight 1
HTTP_GET {
url {
path /
status_code 200
}
connect_timeout 3
}
}
} }
IV. Vérification et test de configuration
1. Vérifier la configuration
Pour lister les informations liées à la configuration de LVS, utiliser la commande suivante sur un des nœuds :
Ici on voit bien que le service de type TCP sur le port 80 de l’adresse 10.10.10.10 est bien déclarée. La colonne Forward indique bien que le mode Masquerading (NAT) et l’algorithme utilisé est le rr (Rond Robing)
2. Tester le bon fonctionnement de LB
Dans une barre d’adresse d’un navigateur entrez l’adresse ip de VIP de LooadBalancer http://10.10.10.10
Après cliquer sur actualiser pour tester le bon fonctionnement de LB
Simulons une panne ou une maintenance d’un des serveurs en arrêtant Lvs001.
Les logs du secondaire indiquent qu’il prend le relais.
La commande ip addr doit confirmer la bascule de la VIP.