keepalived vip切换的原理是,如果MASTER节点的keepalived宕掉,那么会根据优先级从BACKUP节点中重新选举一个MASTER节点,此时vip切换到新的MASTER节点中。
是否在keepalived中配置了服务进程监控脚本,如果配置了监控脚本,监测到该服务进程不存在,那么keepalived会自行关闭,此时会发生vip切换。
原MASTER节点的服务恢复后,还需启动keepalived,此时由于在集群中的优先级高,vip会切回来
keepalived配置文件示例:
global_defs {
router_id 1 ##服务器标识号,主备不一致即可
}
##健康检查脚本
vrrp_script chk_nginx {
script "/keepalived/keepalived/scripts/nginx_status.sh" ##状态检查脚本
interval 2 ##检查频率,秒,注意,这个值的设置要大于脚本的执行时间,否则会报错
weight -5 ##服务宕掉时,将设置的本机权重(priority的值)减5
fall 3 ##失败3次
}
vrrp_instance VI_1 {
state MASTER ##指定主备节点,MASTER为主节点,BACKUP为备节点
interface eth0 ##网卡名称
virtual_router_id 51 ##虚拟路由编号,主备一致
priority 100 ##优先级,MASTER节点设置要高于BACKUP节点
mcast_src_ip 192.168.88.132 ##心跳源IP(本机ip)
authentication { ##密钥认证,指定
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {
192.168.88.101/24 ##vip
}
track_script {
chk_nginx ##引用脚本,名称要与vrrp_script中设定的名称对上
}
如果执行了以上步骤并且仍然遇到问题,则建议查看系统和 Keepalived 日志,以找出可能存在的问题