为了实现高可用性,我有两台服务器:172.24.4.51 和 172.24.4.52,虚拟 IP 为 172.24.4.53。主服务器为 172.24.4.51,备份服务器为 172.24.4.52。我在 172.24.4.51 上,然后我让 systemctl stop keepalived,但该服务器上的 keepalived 服务仍然处于活动状态。我对 keepalived 的进程执行了 kill -9,但这些进程会自动重新创建。我执行了 systemctl staus keepalived,状态显示 Loaded: loaded,Active: inactive,但它仍然处于活动状态。我设置了 ip a,我看到虚拟 IP 处于活动状态。
我给你 keepalived 配置
会发生什么事呢?
vrrp_script chk_haproxy {
script "killall -0 haproxy" # verify the pid existance
interval 2 # check every 2 seconds
weight 2 # add 2 points of prio if OK
}
vrrp_instance VI_1 {
interface ens192 # interface to monitor
state MASTER
virtual_router_id 51 # Assign one ID for this route
priority 101 # 101 on master, 100 on backup
unicast_src_ip 172.24.4.51
unicast_peer {
172.24.4.52
}
virtual_ipaddress {
172.24.4.53 # the virtual IP
}
track_script {
chk_haproxy
}
notify_master /etc/keepalived/master.sh
}
答案1
请检查 master.sh 内容,实际上,仅当服务器可访问且 keepalived 配置没有任何问题时,keepalived 才会尝试将主节点设为主节点,我认为在您的情况下,无论何时尝试停止/杀死,都可能通过配置管理工具/监视器或其他脚本重新启动。
另请检查转换日志。