keepalived群集
Keepalived是一个基于VRRP协议来实现的LVS服务高可用方案,可以解决静态路由出现的单点故障问题。
群集具备的特性
1)负载均衡 提高群集的性能
2)健康检查(探针) 探测调度器和节点服务器是否在正常运行
3)故障转移 通过VIP漂移实现主备切换
健康检查(探针)常用的工作方式
1)发送心跳消息 vrrp报文 ping/pong
2)TCP端口检查 向目标主机的 IP:PORT 发起TCP连接请求,如果TCP连接三次握手成功则认为健康检查正常,否则认为健康检查异常
3)HTTP URL检查 向目标主机的URL路径发起HTTP GET请求方法,如果响应状态码为 2XX 或 3XX,则认为健康检查正常;如果响应状态码为 4XX 或 5XX,则认为健康检查异常
http://IP:PORT/URI路径 http://www.nbpl.com/test.html
keepalived的工作原理
keepalived是基于 VRRP 协议实现多机热备的高可用方案。
默认情况下通过优先级决定主备服务器的角色(优先级最高的为主),主服务器(MASTER)会通过ip命令在本地生成VIP,并通过VIP接收并处理客户端发送的请求消息;同时主服务器还会定时发送VRRP报文给备服务器(BACKUP)告知主服务器的存活状态。当主服务器异常时,备服务器就会接管VIP(也是通过ip命令生成VIP)继续提供服务,保证服务的高可用。
keepalived的工作模式
1)抢占模式:keepalived的默认模式,MASTER节点从故障中恢复后,会将VIP从BACKUP节点中抢占过来
2)非抢占模式:MASTER节点恢复后不抢占VIP。(主备节点的state都配置为BACKUP,且都要添加nopreempt配置)
nginx做负载均衡器 + keepalived 实现高可用
1)先准备好对 nginx 进程做健康检查的脚本
2)修改keepalived配置文件,添加调用健康检查脚本的配置 使用vrrp_script XXX {}定义脚本路径 使用track_script { XXX }调用脚本
3)启动 nginx 和 keepalived
实验
keepalived + LVS
环境配置
客户机: 20.0.0.100
LVS1代理服务器 安装 Keepalived: 20.0.0.13
LVS2代理服务器 安装 Keepalived: 20.0.0.14
vip 虚拟ip: 20.0.0.200
web1服务器: 20.0.0.11
web2服务器: 20.0.0.12
实操
1) 代理服务器 LVS1、L