使用Keepalived实现双机热备,实现服务高可用

安装(所有节点)

yum -y install keepalived

修改配置

vi /etc/keepalived/keepalived.conf
:set nu   //显示行号
:35 dG  // 删除35行以后的所有行

使用Keepalived实现双机热备,实现服务高可用_第1张图片
使用Keepalived实现双机热备,实现服务高可用_第2张图片

ip a

使用Keepalived实现双机热备,实现服务高可用_第3张图片
将master1虚拟机挂起,再次执行ip a 看vip是否漂移到另一台虚拟机worker1
使用Keepalived实现双机热备,实现服务高可用_第4张图片

漂移了,表示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

脚本说明:
使用Keepalived实现双机热备,实现服务高可用_第5张图片
赋予脚本执行权限 方便之后其他软件调用执行

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
}

使用Keepalived实现双机热备,实现服务高可用_第6张图片

非抢占模式

①nopreempt

在主备服务器的配置文件,vrrp_instance段中

②设置state工作模式为BACKUP
两个keepalived节点都启动后,默认都是BACKUP状态,双方在发送组播信息后,会根据优先级来选举一个MASTER出来。由于两者都配置了nopreempt,所以MASTER从故障中恢复后,不会抢占vip。这样会避免VIP切换可能造成的服务延迟。

你可能感兴趣的:(Linux,Nginx,Shell脚本,linux,运维)