安装(所有节点)
yum -y install keepalived
修改配置
vi /etc/keepalived/keepalived.conf
:set nu //显示行号
:35 dG // 删除35行以后的所有行
ip a
将master1虚拟机挂起,再次执行ip a 看vip是否漂移到另一台虚拟机worker1
漂移了,表示keepalived配置启动成功了!
Nginx整合keepalived
让keepalived除了监控网络之外,还要监控Nginx服务是否挂掉,两种情况都要进行VIP(虚拟ip)漂移
主备服务器都要实现此脚本
1、编写测试脚本 赋予执行权限
shell > cd /etc/keepalived
shell > vim check_nginx.sh
脚本内容:
#!/bin/bash
nginx_status=`ps -C nginx --no-header | wc -l`
if [ $nginx_status -eq 0 ];then
service keepalived stop
fi
脚本说明:
赋予脚本执行权限 方便之后其他软件调用执行
shell > chmod +x check_nginx.sh
2、测试脚本可用性
启动nginx和keepalived
关闭nginx 执行脚本 查看keepalived是否也关闭
3、在多台服务器中配置keepalived定时触发检测nginx的脚本模块
#在vrrp_instance外上面定义
vrrp_script check_nginx {
#调用脚本地址
script /etc/keepalived/check_nginx.sh
#检测间隔时间
interval 3
}
#在vrrp_instance里调用
track_script {
#上线定义的名称
check_nginx
}
非抢占模式
①nopreempt
在主备服务器的配置文件,vrrp_instance段中
②设置state工作模式为BACKUP
两个keepalived节点都启动后,默认都是BACKUP状态,双方在发送组播信息后,会根据优先级来选举一个MASTER出来。由于两者都配置了nopreempt,所以MASTER从故障中恢复后,不会抢占vip。这样会避免VIP切换可能造成的服务延迟。