次のシナリオは、Red Hat Enterprise Linux 7 を実行している 4 つの VM です。
20.1.67.230 サーバー (仮想 IP) (ホストではない)
20.1.67.219 haproxy1 (ロードバランサー)
- 20.1.67.229 haproxy2 (ロードバランサー)
- 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
システム全体が正常に機能しているように見えます。haproxy1とhaproxy2の間の VRRP メッセージは問題ありません。仮想 IP が正しく機能していないようです。
この問題を診断して修正するために、誰かが私を正しい方向に向けることができますか?