首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Keepalived vrrp_script不会进行故障切换

Keepalived vrrp_script不会进行故障切换
EN

Stack Overflow用户
提问于 2015-11-30 15:46:07
回答 2查看 5.2K关注 0票数 0

我有2个节点,它们都有keepalived和haproxy服务(CentOS7)。如果我关闭了一个节点,所有的节点都可以正常工作。但是,如果haproxy出现故障,我希望对VIPS进行故障切换。

这是第1个节点配置:

代码语言:javascript
复制
  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
}
}

第二个节点:

代码语言:javascript
复制
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
}
}

cat /etc/keepalived/haproxy_check

代码语言:javascript
复制
systemctl status haproxy | grep "inactive"

当我停止haproxy时,它仍然不会将VIP故障转移到下一台主机。

代码语言:javascript
复制
[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

我做错了什么?提前谢谢你!

EN

回答 2

Stack Overflow用户

发布于 2015-12-01 21:57:51

在脚本中,您正在检查

代码语言:javascript
复制
systemctl status haproxy

包含关键字"inactive“。这是您手动停止haproxy服务时获得的值吗?

一旦haproxy服务停止,您的日志中包含它的内容就会重新启动。你能证实吗?

另外,尝试将脚本替换为

代码语言:javascript
复制
script "killall -0 haproxy"
票数 0
EN

Stack Overflow用户

发布于 2016-11-18 04:18:39

很简单。例如,请尝试执行以下操作:

代码语言:javascript
复制
vrrp_script check_haproxy {
    script "pidof haproxy"
    interval 2
    weight 2
}

在config的末尾,你也应该添加以下部分:

代码语言:javascript
复制
track_script {
    check_haproxy
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33993677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档