1、keepalived理论知识点
·1.1 Keppalived作用:基于Linux服务器负载均衡器和高可用功能。
1.2 keepalive的原理:Keppalive高可用之间是通过vrrp协议进行通信的,VRRP协议是通过精选机制来确定主备的。主的优先级高于备,因此工作时,主会获得所有资源,备会处于等待状态。当主挂的时候,备会接管主节点的资源。然后顶替主节点对外提供服务
Keepalive主服务对之间,只有主服务会一直发送vrrp广播包,告诉备还活着,此时备不会抢占主
,当备监听不到主服务的vrrp包时,备就会启动相关资源,接管资源,保障业务的可持续性。
当Master恢复时,Backup又会释放Master故障时自身接管的IP资源和服务,恢复到原来的备用角色
2、keepalive软件安装
yum -y install keepalived
rpm -qc keepalived
/etc/keepalived/keepalived.conf
/etc/sysconfig/keepalived
vim /etc/keepalived/keepalived.conf
主节点配置
global_defs { #全局配置
router_id lb01 #身份识别
}
vrrp_instance VI_1 { #VRPP协议配置
state MASTER #告诉你一开始这台机器是主
interface ens33 #绑定的网卡
virtual_router_id 50 #虚拟路由标识,就是编组,将master和backup分为一组
priority 100 #优先级(真正判断是主还是备的条件
advert_int 1 #检测心跳的时间间隔
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.200.16/24 #指定VIP地址
}
}
备节点配置:
global_defs {
router_id lb02
}
vrrp_instance VI_1 {
state BACKUP
interface ens33
virtual_router_id 50
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.200.16/24
}
}
主备节点配置区别
区别 | master主节点 | backup备节点 |
---|---|---|
router_id(唯一标识符) | lb01 | lb02 |
state(角色状态) | MASTER | BACKUP |
priority(优先级) | 100 | 90 |
启动服务:
systemctl start keepalived.service
先启动nginx,后启动keepalived
3、Keepalived高可用与Nginx
Nginx默认监听在所有的IP地址上,VIP会飘到一台节点上,相当于那台nginx多了VIP这么一个网卡,所以可以访问到nginx所在机器 但是.....如果nginx宕机,会导致用户请求失败,但是keepalived没有挂掉不会进行切换,所以需要编写一个脚本检测Nginx的存活状态,如果不存活则kill掉keepalived
[root@129 ~]# cat check_web.sh
#!/bin/bash
nginxpid=`ps -ef | grep nginx | grep -v grep | wc -l`
if [ $nginxpid -gt 1 ];then
exit -1;
else
systemctl stop keepalived
echo "正在停止keepalived"
fi
设置定时计划
*/1 * * * * sh /root/check_web.sh