Keepalived+LVS高可用集群原理
使用Keepalived与Linux Virtual Server(LVS)结合是一种常见的构建高可用性负载均衡集群的方式,Keepalived负责管理虚拟IP(VIP)的故障转移,而LVS则负责实际的负载均衡调度。通过keepalived监控后端服务器的状态,并在需要时通过VIP的转移来实现故障转移,而LVS负责将客户端请求分发到可用的后端服务器上,从而实现整个系统的高可用性和负载均衡。
Keepalived+LVS高可用集群的搭建
集群环境准备
1、两台Nginx后端服务器,两台LVS负载均衡服务器。配置如下:
- LVS1:LVS+Keepalived服务器,DIP为192.168.238.51,VIP为192.168.238.10。
- LVS2:LVS+Keepalived服务器,DIP为192.168.238.52,VIP为192.168.238.10。
- Nginx1:Nginx服务器,RIP为192.168.238.101,VIP为192.168.238.10。
- Nginx2:Nginx服务器,RIP为192.168.238.102,VIP为192.168.238.10。
2、修改两台Nginx服务器上的首页。
2.1、修改Nginx1首页并启动Nginx。

2.2、修改Nginx2首页并启动Nginx。

高可用负载均衡配置
1、所有服务器关闭并禁用SELINUX模块。

2、所有服务器关闭并禁用防火墙。

3、配置LVS负载均衡服务器。
3.1、修改LVS1和LVS2的内核参数,禁用网络的发送重定向功能。

3.2、在LVS1和LVS2上执行sysctl命令,使配置立即生效。

3.3、修改主服务器LVS1上的配置文件/etc/keepalived/keepalived.conf。
• 全局配置:修改route_id为主机名并禁用vrrp_strict。

• 实例配置:state设置为MASTER,priority设置为100,virtual_ipaddress为集群虚拟IP。

• 虚拟主机配置:包含虚拟IP与后端真实服务器IP。

3.4、修改备份服务器LVS2上的配置文件/etc/keepalived/keepalived.conf。
• 全局配置:修改route_id为主机名并禁用vrrp_strict。

• 实例配置:state设置为BACKUP,priority设置为90,virtual_ipaddress为集群虚拟IP。

• 虚拟主机配置同主服务器。

3.5、启动主备份服务器LVS1和LVS2上的keepalived,查看主服务器是否持有虚拟IP。

4、配置后端Nginx服务器。
4.1、将所有后端服务器的回环接口lo的子接口设置为虚拟IP并查看设置结果。

4.2、为新增的接口添加路由。

4.3、修改内核参数,控制arp的行为。

4.4、执行sysctl命令,使配置立即生效。

负载均衡集群的测试
1、通过客户端访问LVS集群的VIP,可见请求已被依次转发至后端两台Nginx服务器。
