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-адрес, который я выбрал.

Другие вопросы по тегам