KeepAlived + HAProxy получает соединение отказано через некоторое время
У меня следующий сценарий, 4 виртуальных машины под управлением Red Hat Enterprise Linux 7:
20.1.67.230 сервер (VIRTUAL IP) (не хост)
20.1.67.219 haproxy1 (LOAD BALANCER)
- 20.1.67.229 haproxy2 (LOAD BALANCER)
- 20.1.67.223 server1 (НАГРУЗКА НА БАЛАНС)
- 20.1.67.213 server2 (НАГРУЗКА НА БАЛАНС)
Мой файл keepalived.conf:
vrrp_script chk_haproxy {
script "killall -0 haproxy" # check the haproxy process
interval 2 # every 2 seconds
weight 2 # add 2 points if OK
}
vrrp_instance VI_1 {
interface enp0s3 # interface to monitor
state MASTER# MASTER on haproxy1, BACKUP on haproxy2
virtual_router_id 51
priority 101 # 101 on haproxy1, 100 on haproxy2
unicast_src_ip 20.1.67.229 # This is the IP of the interface keepalived listens on
unicast_peer { # This is the IP of the peer instance
20.1.67.219
}
virtual_ipaddress {
20.1.67.230 # virtual ip address
}
track_script {
chk_haproxy
}
}
Когда выполнить запрос к виртуальному IP, например:
curl server:8888/info
все ок, но ненадолго, после некоторых запросов команда возвращает меня: соединение отказано
Поэтому я перезапущу сервис keepalived вручную следующим образом:
systemctl restart keepalived.service
Кажется, что вся система работает хорошо, сообщения VRRP между haproxy1 и haproxy2 в порядке, просто виртуальный IP не работает должным образом.
Может ли кто-нибудь указать мне правильное направление для диагностики и устранения этой проблемы?
1 ответ
Это была проблема с сетью. В сети было устройство с тем же IP-адресом, что и виртуальный IP-адрес, который я выбрал.