Configuration d’équilibrage de charge d’un serveur Apache avec Keepalived

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.

Sources

Laisser un commentaire