我正在尝试以这样一种方式配置keepalived,即如果在主节点上运行的任何应用程序或服务发生故障,keepalived 应将其视为故障,备份节点应充当主节点并从主节点接管浮动IP。
我编写了一个脚本来检查主服务器上的服务 X 是否关闭,然后它应该转换到备份节点。
我的keepalived conf是:
global_defs {
enable_script_security
}
vrrp_script keepalived_check {
script "/root/new/check.sh"
interval 1
timeout 1
rise 2
fall 2
weight 0 reverse
}
vrrp_instance V1_11 {
state MASTER
interface ens3
virtual_router_id 51
priority 101
advert_int 1
unicast_src_ip 192.168.10.129
unicast_peer {
192.168.10.130
}
authentication {
auth_type PASS
auth_pass 1122
}
virtual_ipaddress {
192.168.10.231/24
}
track_script {
keepalived_check
}
}
检查服务状态的脚本:
#!/bin/bash
var="$(systemctl is-active myservice.service)"
if [ $var == "active" ]
then
echo 0
else
echo 5
fi
我使用手动停止了“myservice”
systemctl stop myservice.service
正如预期的那样,脚本的输出是“5”。但是通过上述配置,主节点仍然是主节点,它不会将所有权转移到备份节点。是否有任何我错过的特定配置然后请帮我找到它?