Конфигурация MASTER-ноды (haproxy-01, IP 10.0.0.1):
global_defs {
router_id HAPROXY_01
script_user root
enable_script_security
# Уведомление при смене состояния
notification_email {
admin@finonline.ru
}
notification_email_from keepalived@finonline.ru
smtp_server 127.0.0.1
smtp_connect_timeout 30
}
# Скрипт проверки HAProxy
vrrp_script chk_haproxy {
script "/etc/keepalived/check_haproxy.sh"
interval 2 # Проверяем каждые 2 секунды
weight -30 # При неудаче снижаем приоритет на 30
fall 2 # 2 неудачи подряд = сервис упал
rise 2 # 2 успеха подряд = сервис восстановлен
timeout 3 # Таймаут выполнения скрипта
}
# Скрипт проверки backend-ов
vrrp_script chk_backends {
script "/etc/keepalived/check_backends.sh"
interval 5
weight -15
fall 3
rise 2
timeout 5
}
vrrp_instance VI_PAYMENT {
state MASTER
interface eth0
virtual_router_id 51
priority 110 # MASTER: 110, BACKUP: 100
advert_int 1 # Advertisement каждую секунду
nopreempt # Не забирать VIP обратно при восстановлении
# Unicast вместо multicast — надёжнее в облачных средах
unicast_src_ip 10.0.0.1
unicast_peer {
10.0.0.2
}
authentication {
auth_type PASS
auth_pass Fin0nL1ne_VRRP!
}
virtual_ipaddress {
10.0.0.100/24 dev eth0 label eth0:vip
}
track_script {
chk_haproxy
chk_backends
}
# Notify-скрипты для алертов
notify_master "/etc/keepalived/notify.sh MASTER"
notify_backup "/etc/keepalived/notify.sh BACKUP"
notify_fault "/etc/keepalived/notify.sh FAULT"
notify_stop "/etc/keepalived/notify.sh STOP"
}
Конфигурация BACKUP-ноды (haproxy-02, IP 10.0.0.2) — отличия минимальны:
global_defs {
router_id HAPROXY_02
# ... остальное идентично
}
vrrp_instance VI_PAYMENT {
state BACKUP # Роль — BACKUP
interface eth0
virtual_router_id 51 # Должен совпадать с MASTER!
priority 100 # Ниже, чем у MASTER (110)
advert_int 1
unicast_src_ip 10.0.0.2
unicast_peer {
10.0.0.1
}
# ... остальное идентично
}
Параметр nopreempt означает, что после failover на BACKUP, даже когда MASTER восстановится — VIP останется на BACKUP. Это предотвращает «пинг-понг» при нестабильном сервисе на MASTER. Возврат VIP на MASTER производится только вручную после проверки.
Оставить комментарий