keepalived虚拟ip无法访问,vrrp_strict已经注释掉了、、、

一共两台机器(43和47,43为主),虚拟IP可以实现自动在两台机器之间切换,刚开始启动虚拟ip在43上,无法访问;把43的keepalived停掉,虚拟ip到47上,可以访问;重启43的keepalived,无法访问。配置文件内容如下:

! Configuration File for keepalived

global_defs {   
    router_id host-10-193-0-43
}

vrrp_script chk_consul{
    script "/home/keepalived/consul_check.sh"
    interval 2
    weight -20
}

vrrp_script chk_rpcxc{
    script "/home/keepalived/rpcxc_check.sh"
    interval 2
    weight -20
}

vrrp_instance VI_1 {
    state BACKUP
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        10.193.0.198/20
    }

    track_script{
        chk_consul
    }
}

两台机器除了router_id和priority不一样外,其他都一样

1个回答

这种现象是正常的。keep有两种模式:抢占模式和非抢占模式,你的配置是抢占模式,即vip会一直存在于优先级高的服务器。
一开始43上有vip,说明43的优先级高,43停掉以后,变成47的优先极高(因为43不存在了),这时候vip飘移到了47;等你的43又启动起来,这时候43的优先级比47高,vip又漂移回43了。
至于你说的vip在43的时候服务不能用,那应该排查一下43这台机上的服务是不是本身就不能用。
如果想改变keep的这种工作模式,就是43启动起来了,也不想让vip漂移回去,可以查一下keep的非抢占模式怎么设置。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问