keepalived是一个基于vrrp协议来实现的LVS服务高可用方案,可解决静态路由器出现的单点故障问题
解决单点故障。
通过主备来保证高可用性,
vrrp回忆
vlan区分广播域,vlan if 虚拟接口
vrrp只有一种报文:Advertisement报文(通告报文);其目 的IP地址是224.0.0.18,协议号是112。
VLAN个数有4096个,范围0~4095
keepalived 高可用应用 (健康检查,故障切换)
底层基于vrrp协议实现的高可用
由优先级决定的主备角色,master服务器上会生产成vip,客户端会把访问发送给vip,由master服务器接受用户的请求
master服务器会定期给backup服务器发送backup服务器发送vrrp报文,来告知master服务器状态正常
当backup在超时时间内没有收到vrrp报文,则认为master异常,此时会接替master的工作
一个健康的集群的特点:
1,负载均衡
2,健康检查;探针 (心跳消息ping pang tcp端口检查 http url检查回应404等)
3,故障切换;
keepalived vrrp
vrrp针对路由器的一种热备份解决方案
由多台路由器组成一个热备组,通过共用的虚拟ip地址对外提供服务
每个热备份组内同时只有一台主路由器提供服务,其他路由器处于冗余状态
若当前在线的路由器失效,则其他路由会根据优先级接替虚拟ip地址,继续提供服务。
注意四台机器都要装nginx。一台主,一个备,两台nginx真实服务器
yum install -y keepalived
cd /etc/keepalived
vim /etc/keepalived/keepalived.conf
主和备虚拟路由器组id要相同
优先启动的获取master权限,与与优先级没关系
默认抢占模式
非抢占模式两个state backup
取消nopreempt的注释
keepalive部署
scp keepalived.conf 192.168.232.17:`pwd`
ip addr 验证看vip
安装在线扩展源yum install -y epel-release再yum install -y nginx(版本较低)
ngnx服务器虚拟网卡
vim /etc/sysctl.conf
sysctl -p修改
route -n
route add -host 192.168.232.188 dev lo:0
调度器
安装yum ipvsadm keepalived
modprobe ip_vs
ipvsadm -save > /etc/syscnfig/ipvsadm
systemctl start ipvsadm
主服务器配置
复制个80.15
配置文件里有,不需要再配置ipvsadm策略
备服务器
高可用keepalived和nginx负载均衡器
主服务器
upstream web_server {
server 192.168.232.7
server 192.168.232.17
}
server{
location~ /test {
proxy_pass http://web_server;
}
}
监控nginx进程状态
vim nginx.sh
或者
if ! killall -0 nginx &> /dev/null;then
systemctl stop keepalived
fi
chmod +x nginx.sh
vim /etc/keepalived/keepalived.conf
lvs 负载均衡删掉后做脚本检查
备服务器
systemctl start keepalived
curl 192.168.232.188验证