Keepalived + HAProxy: Настройка отказоустойчивости (Failover): Difference between revisions
Jump to navigation
Jump to search
Created page with " == 🛡️ Keepalived + HAProxy: Настройка отказоустойчивости (Failover) == Полная инструкция по установке и настройке Keepalived для автоматического переключения между HAProxy инстансами (MASTER/BACKUP). ---- === 📦 Установка Keepalived и создание пользователя === sudo apt install keepalived -y sudo useradd -s /usr/sbin/nologin..." |
No edit summary |
||
| Line 34: | Line 34: | ||
<pre> | <pre> | ||
sudo vim /etc/keepalived/keepalived.conf | sudo vim /etc/keepalived/keepalived.conf | ||
</pre> | </pre>Пример:<pre> | ||
vrrp_script chk_haproxy { | |||
script "/etc/keepalived/check_haproxy.sh" | |||
interval 2 | |||
weight -20 | |||
} | |||
vrrp_instance VI_1 { | |||
state MASTER | |||
Запуск: | interface ens192 | ||
virtual_router_id 51 | |||
priority 200 | |||
advert_int 1 | |||
authentication { | |||
auth_type PASS | |||
auth_pass 12345 | |||
} | |||
virtual_ipaddress { | |||
192.168.166.100 | |||
} | |||
track_script { | |||
chk_haproxy | |||
} | |||
} | |||
</pre>Запуск: | |||
sudo systemctl restart keepalived | |||
sudo systemctl enable keepalived | sudo systemctl enable keepalived | ||
sudo systemctl status keepalived | sudo systemctl status keepalived | ||
---- | ---- | ||
== 🟨 Конфигурация для BACKUP-сервера == | == 🟨 Конфигурация для BACKUP-сервера == | ||
sudo vim /etc/keepalived/keepalived.conf | |||
Пример: | Пример: | ||
vrrp_script chk_haproxy { | |||
script "/etc/keepalived/check_haproxy.sh" | script "/etc/keepalived/check_haproxy.sh" | ||
interval 2 | interval 2 | ||
| Line 72: | Line 95: | ||
chk_haproxy | chk_haproxy | ||
} | } | ||
} | } | ||
Запуск: | Запуск: | ||
sudo systemctl restart keepalived | |||
sudo systemctl enable keepalived | sudo systemctl enable keepalived | ||
sudo systemctl status keepalived | sudo systemctl status keepalived | ||
---- | ---- | ||
Latest revision as of 12:13, 10 October 2025
🛡️ Keepalived + HAProxy: Настройка отказоустойчивости (Failover)
Полная инструкция по установке и настройке Keepalived для автоматического переключения между HAProxy инстансами (MASTER/BACKUP).
📦 Установка Keepalived и создание пользователя
sudo apt install keepalived -y sudo useradd -s /usr/sbin/nologin keepalived_script
🧪 Скрипт проверки HAProxy
sudo vim /etc/keepalived/check_haproxy.sh
Содержимое:
#!/bin/bash
if ! pgrep haproxy > /dev/null; then
exit 1
fi
exit 0
sudo chmod +x /etc/keepalived/check_haproxy.sh
🛠️ Разрешение non-local bind
Добавьте в /etc/sysctl.conf:
net.ipv4.ip_nonlocal_bind=1
Примените:
sudo sysctl -p
🟥 Конфигурация для MASTER-сервера
sudo vim /etc/keepalived/keepalived.conf
Пример:
vrrp_script chk_haproxy {
script "/etc/keepalived/check_haproxy.sh" interval 2 weight -20}
vrrp_instance VI_1 {
state MASTER interface ens192 virtual_router_id 51 priority 200 advert_int 1authentication { auth_type PASS auth_pass 12345 }virtual_ipaddress { 192.168.166.100 }track_script { chk_haproxy }}
Запуск:
sudo systemctl restart keepalived sudo systemctl enable keepalived sudo systemctl status keepalived
🟨 Конфигурация для BACKUP-сервера
sudo vim /etc/keepalived/keepalived.conf
Пример:
vrrp_script chk_haproxy {
script "/etc/keepalived/check_haproxy.sh"
interval 2
weight -20
}
vrrp_instance VI_2 {
state BACKUP
interface ens192
virtual_router_id 51
priority 50
advert_int 1
authentication {
auth_type PASS
auth_pass 12345
}
virtual_ipaddress {
192.168.166.100
}
track_script {
chk_haproxy
}
}
Запуск:
sudo systemctl restart keepalived sudo systemctl enable keepalived sudo systemctl status keepalived
💡 Рекомендации и дополнения:
- Убедитесь, что
haproxyустановлен и настроен на обоих узлах - Для HAProxy можно использовать health-check в связке с Keepalived
- Используйте
tcpdumpилиip aдля проверки привязки192.168.166.100 - Проверить работу можно, остановив
haproxyна MASTER и убедившись, что IP переехал на BACKUP
🎯 Готово! Теперь при отказе HAProxy на MASTER, трафик автоматически переключится на BACKUP через виртуальный IP 🚦