【IT老齐075】高可用架构避免单点经典方案Keepalived+VIP
规避单点是高可用架构设置最基本的考量
概念
Keepalived
Keepalived是Linux轻量级别的高可用解决方案
Keepalived主要是通过虚拟路由几余 (VRRP) 来实现高可用功能,Keepalived部署和使用非常的简单,所有配置只需要一个配置文件即可以完成
虚拟路由元余协议(Virtual Router Redundancy Protocol,简称VRRP)是由IETF提出的解决局域网中配置静态网关出现单点失效现象的路由协议
VIP
VIP(虚拟IP)是虚拟的IP,与实际网卡绑定的的IP地址不同,VIP在内网中被动态的映射到不同的MAC地址上,也就是映射到不同的机器设备上,Keepalived通过“心跳机制”监测服务器状态,Master主节点宕机则自动将“IP漂移”到Backup备机上实现高可用
配置文件
主机和备机只有状态和优先级不同
故障转移
如果是Keepalived自身产生问题Master无法发送心跳包,Backup自动升级为Master,产生IP漂移继续提供服务
当Master恢复后,Keepalived自动IP漂移回原Master。新Master自动降级回backup
健康检查
Nginx脚本
#!/bin/bash
#检查nginx的pid文件是否存在或者检查端口
NGINXPID="/usr/install/nginx/logs/nginx.pid'
if [ ! -f $NGINXPID ];then
killall keepalived
fi
配置
vrrp_script check_nginx {
#nginx服务检查脚本
script "/etc/keepalived/nginx_check.sh"
interval 2 #触发间隔
weight 1 #权重
}
vrrp_instance VI_1 (
state MASTER
interface ens33
virtual_router_id 51
#优先级 (主高于备)
priority 100
advert_int 2
authentication {
auth_type PASS
auth_pass 123456
}
track_script {
check_nginx
}
virtual ipaddress {
192.168.237.5/24
}
}
互为主备
非抢占模式
配置文件添加
nopreempt
,使得默认的主服务在掉线再恢复后不抢占备机的服务,减少ip漂移
脑裂
- 禁止
pkill -9 keepalived
,使用pkill keepalived
正常结束,正确回收虚拟ip - 解决网络问题后
systemctl restart network
- 提高局域网可用性