我有 2 个带有 keepalived 和 haproxy 服务的节点(CentOS7)。
如果我关闭一个节点一切正常。但是如果 haproxy 出现故障,我想对 VIPS 进行故障转移。
这是第一个节点配置:
vrrp_script ha_check {
script "/etc/keepalived/haproxy_check"
interval 2
weight 21
}
vrrp_instance VI_1 {
state MASTER
interface eno16777984
virtual_router_id 151
priority 101
advert_int 1
authentication {
auth_type PASS
auth_pass 11111
}
virtual_ipaddress {
10.0.100.233
}
smtp_alert
track_script {
ha_check
}
}
第二个节点:
vrrp_script ha_check {
script "/etc/keepalived/haproxy_check"
interval 2
fall 2
rise 2
timeout 1
weight 2
}
vrrp_instance VI_1 {
state BACKUP
interface eno16777984
virtual_router_id 151
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 11111
}
virtual_ipaddress {
10.0.100.233
}
smtp_alert
track_script {
ha_check
}
}
猫/etc/keepalived/haproxy_check
systemctl status haproxy | grep "inactive"
当我停止 haproxy 时,它仍然不会将 VIP 故障转移到下一个
主持人。
[root@cks-hatest1 keepalived]# tail /var/log/messages
Nov 30 10:35:24 cks-hatest1 Keepalived_vrrp[5891]: VRRP_Script(ha_check) failed
Nov 30 10:35:33 cks-hatest1 systemd: Started HAProxy Load Balancer.
Nov 30 10:35:45 cks-hatest1 systemd: Stopping HAProxy Load Balancer...
Nov 30 10:35:45 cks-hatest1 systemd: Stopped HAProxy Load Balancer.
Nov 30 10:35:46 cks-hatest1 Keepalived_vrrp[5891]: VRRP_Script(ha_check) succeeded
我做错了什么?先感谢您!
最佳答案
在您的脚本中,您正在检查是否
systemctl status haproxy
包含关键字“inactive”。这是您手动停止 haproxy 服务时获得的值(value)吗?
一旦 haproxy 服务停止,您的日志包含它就会再次启动。你能证实吗?
另外,尝试将脚本替换为
script "killall -0 haproxy"
关于centos - keepalived vrrp_script 不进行故障转移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33993677/