nginx+keepalived 搭建lvs高可用负载均衡集群
一 集群的分类
1.1 高可用集群(HA)
高可用的含义就是最大限度的可以使用。从集群的名字上可以看出该服务器需要保证程序运行持久,不间断的提供服务。当应用程序出现故障或者系统硬件,网络出现故障时,应保证服务快速的从坏死的节点上切换到另一个节点上,保证服务正常,不间断运行。
长见的双机主备,双击热备,多级互备都是其典型的案例;
简而言之就是一台或多台服务器作为主服务器(正常情况下提供服务的服务器)的备胎(正常情况下处于不活跃状态),当主服务器(master)故障后,数据请求落到备胎服务器(slave)上,在主服务器切换到备胎服务器过程对用户应该是透明的,用户是无察觉的。
1.2 负载均衡集群(LB)
两头或两台以上服务器组成,分为前端负载调度器(DR Director Server)和后端服务节点(RS realServer)。与HA集群不同的是,所以的后端节点均处于活跃状态。
前端负载调度器负责把客户端的请求按照既定策略分配给后端节点服务器。后端节点服务器真实处理请求并响应数据;这样就可以把一个高负荷的应用分摊到多个节点服务器上来完成。
简而言之 LB集群就是多个服务器分担任务(不是分拆,分拆是分布式集群),处理任务。而调度器就是任务的分配者(分配任务),后端节点就是任务的处理者(干活)。
二 keepalived
keepalived 是 liunx下轻量级的高可用解决方案。是一款配置简单的软件,只需配置一个配置文件就可实现高可用。
keepalived 根据osi 3-5层交换机制(会话层,传输层和网络层)检测节点的状态,如果某个服务节点出现故障,keepalied 将检测到,并将故障节点从集群中剔除,当故障节点恢复正常后,keepalived 将再次将该节点加入集群中。这些检测,剔除,恢复不需要人工操作,人工只需修复故障节点。
因其能完美的实现节点的监控,剔除和恢复工作,那其就能配合节点服务器实现高可用集群;
keepalived 最初是为lvs服务的,由于keepalived 可以实现节点的状态监控,而ipvs可以实现负载均衡。因此keepalived 借助第三方模块ipvs就可以方便实现即对节点监控(HA)又对任务分发的(LB)高可用负载均衡集群
三 安装与配置
3.1 地址规划
3.2 安装keepalived 和ipvsadm
3.2.1 DR1和DR2上安装 keepalived和ipvsadm
在调度器DR1和DR2上分别安装keepalived 和ipvsadm
yum install keepalived -y
yum install ipvsadm -y
分别查看 DR1 和DR2 keepalived 状态
service keepalived statue
分别设置keepalived 开机启动
systemctl enable keepalived.service
3.3 配置keepalived.conf
keepalived.conf 默认在/etc/keepalived/
将DR1上的keepalived.conf 文件复制到DR2服务器对应的路径下。将state Master 改为statue BACKUP ,priority 100 该为 priority 80
3.4 配置real_server1和real_server2
创建文件/etc/init.d/realServer.sh,在lo:0回环地址上绑定VIP地址
修改realServer.sh 执行权限
chmod 755 /etc/init.d/realServer.sh
realserver2节点服务器同样操作
分别启动rs1和rs2 上realServer 服务 sh /etc/init.d/realServer.sh start
查看回环设置上虚拟VIP 是否绑定成功 ifconfig
至此keepalived+lvs 高可用得负载均衡集群搭建完成
四 测试高可用lvs负载均衡集群系统
4.1 高可用测试
高可用性是通过lvs的两个DR服务器完成的。为了模拟故障。先将DR1(主服务器)上面的keepalived 服务停止,然后观察DR2服务器keepalived 运行日志
ip addr 确定当前主服务器为DR1
service keepalived stop 停止DR1上keepalived 服务。查看DR2上服务器 keepalived 运行日志
tail -f /var/log/message 查看DR2 keepalived 运行日志
也可以通过 ip addr 查看DR2服务器是否接管VIP
至此HA测试正常
4.2 负载均衡测试
因为我虚拟内80端口被占用,所以监听的是9999端口
配置nginx.conf 页面 自己创建一个文件
测试 vip
关闭rs1 的后端服务节点
请求全部落在RS2服务器上,至此高可用LVS负载均衡集群完成!
keepalived.conf && realserver.sh配置文件git地址:https://github.com/binbooo-LJC/keepalived.git
微信交流: binbooo