目录
keepalived是基于VRRP协议(Virtual Router Redundancy Protocol)的软件实现,原生设计目的为了高可用ipvs服务,可以说是ipvs服务的扩展。
如下图所示,LVS/Nginx/HAProxy实现负载均衡(LB:load balance)功能,keepalived实现高可用(HA:High Availability)功能。
keepalived主要是就是在master和slave子网卡建立一个相同的VIP(virtual IP),以保证LVS的master与LVS的slaveIP一致。
Keepalived 主要功能
1、基于vrrp协议完成地址流动
2、为vip地址所在的节点生成ipvs规则
3、为ipvs集群的各RS做健康状态检测(LVS不支持后端服务器的状态检测)
4、基于脚本调用接口通过执行脚本完成脚本中定义的功能,进而影响集群事务,以此支持nginx、haproxy等服务
Keepalived 组件
vrrp stack:两个keepalived服务器之间利用VIP周期性地发送心跳通告。
checkers:检测real server(后端服务器)存活,可以利用http(curl url)或tcp(ip:port)方式进行检测。
system call:设置转发到real server的权重。
SMTP:邮件组件,对端的VRRP Stack挂了,通过邮件服务器给外网发邮件。
ipvs wrapper:生成IPVS规则,不用手动去维护LVS规则,keepalive会自动维护,自动添加自动删除,服务器下线踢出,服务器上线自动加回来。
Netlink Reflector:网络接口。
WatchDog:监控进程,监控组件存活状态,如果有报错就写进日志里面。
Control Plane:控制组件,配置文件解析器。
Scheduler-I/O Multiplexer:I/O复用器。
Memory Mngt:内存管理组件。
Keepalived 常用术语
虚拟路由器:Virtual Router
虚拟路由器标识:VRID(0-255),标识唯一虚拟路由器,同一组路由器的VRID需要一致
路由器分类:master(主路由器)、backup(备路由器)
路由器主备优先级:priority,用来选举主路由器,数值越大,优先级越高
VIP:Virtual IP
VMAC:Virutal MAC (00-00-5e-00-01-VRID)
心跳检测:由master发起,并周期性地发送。如果不指定心跳检测地址,则默认发送组播地址224.0.0.18
心跳检测认证:可以无认证、也可以简单字符认证,只有字符一致,才能通过心跳检测,从而避免他人冒充
工作模式
主备:单虚拟路由器
主主:主/备(虚拟路由器1),备/主(虚拟路由器2)