La haute disponibilité (HA) est un enjeu majeur pour les applications critiques.
Un cluster de load balancers permet de répartir le trafic et de garantir la continuité de service en cas de panne d’un nœud.
Dans cet article, nous allons voir comment mettre en place un cluster HAProxy avec keepalived.
Plan de l’article
- Présentation de HAProxy
- Installation et configuration de base
- Mise en place d’un cluster avec keepalived
- Bonnes pratiques de monitoring et tuning
- Conclusion
Présentation de HAProxy
- HAProxy est un logiciel open-source de répartition de charge (load balancer).
- Il fonctionne en couche 4 (TCP) et couche 7 (HTTP/HTTPS).
- Ses principaux atouts : rapidité, robustesse, flexibilité.
Installation et configuration de base
Installation (Debian/Ubuntu)
sudo apt update
sudo apt install haproxy
Exemple de configuration /etc/haproxy/haproxy.cfg
frontend web_front
bind *:80
default_backend web_servers
backend web_servers
balance roundrobin
server web1 192.168.1.11:80 check
server web2 192.168.1.12:80 check
👉 Ici, le trafic entrant est réparti en round-robin entre deux serveurs web.
Mise en place d’un cluster avec keepalived
Pour éviter le single point of failure, on utilise keepalived avec une adresse IP virtuelle (VIP) :
- Installer keepalived :
sudo apt install keepalived
- Exemple de configuration
/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 1234
}
virtual_ipaddress {
192.168.1.100
}
}
👉 Si le nœud principal tombe, le secondaire prend automatiquement la main.
Bonnes pratiques de monitoring et tuning
- Surveiller les métriques avec HAProxy Stats ou Prometheus + Grafana.
- Ajuster la politique de répartition (
roundrobin
,leastconn
,source
). - Limiter le nombre de connexions simultanées pour éviter la surcharge.
- Mettre à jour régulièrement HAProxy et keepalived pour profiter des correctifs.
Conclusion
Un cluster HAProxy + keepalived assure une répartition de charge performante et une continuité de service en cas de panne.
C’est une solution fiable, économique et largement utilisée pour la haute disponibilité des infrastructures réseau et web.