Keepalive+LVS实现负载均衡

本文详细介绍了如何在Linux环境下,通过LVS的DR模式和Keepalived实现HTTP服务的负载均衡。首先配置四台虚拟机,然后安装并配置LVS,设置轮询调度算法。接着介绍Keepalived的健康检查和故障切换功能,通过修改配置文件在主机间进行资源切换。最后通过测试验证了Keepalived的高可用性和资源抢占机制。

实验环境:

1.linux系统中配置四台虚拟机,主机名可以自己定义
2.给四台主机配置和ip和dns地址解析,是的四台主机可ping通

可以参考以下配置,由于我的母盘ip为1。所以我的ip是从2开始
host1
在这里插入图片描述
host2
在这里插入图片描述
host3
在这里插入图片描述
host4
在这里插入图片描述

做完之后在你的主机中做dns地址解析

vim /etc/hosts
在这里插入图片描述

配置本地yum源,关闭firewalld和selinux

lvs:linux virtual server

lvs实现http的负载均衡

dr:直接路由模式
tun:隧道模式
nat:路由转发模式
fullnat模式

四种工作模式对比

性能比较:DR>TUN>NAT>FULLNAT

DR工作模式和轮询调度实现httpd的负载均衡

操作步骤:
安装所需要的软件

yum install -y ipvsadm
安装管理器

以下都为参考数值(可以自行设置)

添加虚拟IP和调度算法
ipvsadm -A -t 172.25.25.100:80 -s rr
rr表示调度算法

添加虚拟ip给服务器
ipvsadm -a -t 172.25.15.100:80 -r 172.25.15.5:80 -g
ipvsadm -a -t 172.25.15.100:80 -r 172.25.15.4:80 -g
在这里插入图片描述

注意:第一个ip为虚拟ip,第二个ip为你服务端主机的ip

ipvsadm -l 查看ipvsadm设置
同时打开两台服务器中的http服务
在这里插入图片描述

查看两台服务器中的http服务没有问题,进行下一步

在两台主机和调度机中添加虚拟ip(也称VIP)
以一台主机为例添加虚拟ip在这里插入图片描述

下载arptables火墙
yum install -y arptables
安装完成后启动arptables服务,启动后添加访问原则
host3
arptables -A INPUT -d 172.25.15.120 -j DROP
arptables -A OUTPUT -d 172.25.15.120 -j mangle --mangle-ip-s 172.25.15.4
这里的172.25.15.4的ip为自己当前主机的ip
systemctl restart arptables 重新启动服务
host4
arptables -A INPUT -d 172.25.15.120 -j DROP
arptables -A OUTPUT -d 172.25.15.120 -j mangle --mangle-ip-s 172.25.15.5
这里的172.25.15.5的ip为自己当前主机的ip
systemctl restart arptables 重新启动服务
arptables-save > /etc/sysconfig/arptables 将写的策略追加到arptables中

开始做测试:

测试结果如下:

如果访问的不是这样的结果,那么在你的/var/www/html/index.html下写入你想让显示的内容,建议两个服务器都编辑以便于区分

在这里插入图片描述

keepalived+lvs

Keepalived起初是为LVS设计的,专门用来监控集群系统中各个服务节点的状态,它根据TCP/IP参考模型的第三、第四层、第五层交换机制检测每个服务节点的状态,如果某个服务器节点出现异常,或者工作出现故障,Keepalived将检测到,并将出现的故障的服务器节点从集群系统中剔除,这些工作全部是自动完成的,不需要人工干涉,需要人工完成的只是修复出现故障的服务节点。
 后来Keepalived又加入了VRRP的功能,VRRP(VritrualRouterRedundancyProtocol,虚拟路由冗余协议)出现的目的是解决静态路由出现的单点故障问题,通过VRRP可以实现网络不间断稳定运行,因此Keepalvied一方面具有服务器状态检测和故障隔离功能,另外一方面也有HAcluster功能。
 健康检查和失败切换是keepalived的两大核心功能。所谓的健康检查,就是采用tcp三次握手,icmp请求,http请求,udp echo请求等方式对负载均衡器后面的实际的服务器(通常是承载真实业务的服务器)进行保活;而失败切换主要是应用于配置了主备模式的负载均衡器,利用VRRP维持主备负载均衡器的心跳,当主负载均衡器出现问题时,由备负载均衡器承载对应的业务,从而在最大限度上减少流量损失,并提供服务的稳定性。

在你的host1和host2安装keepalive
yum install -y keepalive 安装完成之后编辑配置文件(选择一台主机作为主机)
vi /etc/keepalived/keepalived.conf 编辑配置文件(我让我的host2为master)

修改host2中的keepalive主配置文件

master是主机的意思
priority为优先级
后面的这个ipaddress为需要添加的ip是多少(vip)
在这里插入图片描述

real_serer为服务器的IP
weight权重
TCP_CKECK,tcp检测
connect_timeout 连接超时设置为3秒
nb_get_retry 重启
delay_before_retry 重启前延时

在这里插入图片描述

编辑完成之后编辑副的keepalive,两个keepalive差不多所以只需将host2上的scp到host1中即可

拷贝完成之后只需在副的keepalive中稍加修改

修改权重(priority)和state(状态)

在这里插入图片描述

配置完成之后查看日志

在这里插入图片描述

当我们停止我们host2上的keepalive时我们的ip会给host1
测试:

我们可以看到虚拟ip(vip)飘到了host1上

在这里插入图片描述

查看日志可以看到host1现在成为了master主机

在这里插入图片描述

当我们重新启动host2上的keepalive时我们会发现资源又回到了host2上

在这里插入图片描述

注意:这里的lb_kind要设置成DR

在这里插入图片描述

如果我们不想让虚拟ip飘来飘去那么我们需要修改状态都为backup

注意:此操作需要在优先级高的主机中做
修改状态都为BACKUP,添加nopreempt意思为重新启动是不抢占资源

在这里插入图片描述

测试:

测试host2上现在keepalive状态

虚拟ip现在在host2上

在这里插入图片描述

查看日志

可以看出现在host2为master主机

在这里插入图片描述

停止host2上的keepalive服务

查看host1上的keepalive

查看虚拟ip

在这里插入图片描述

查看日志文件

可以看到现在host1为master主机

在这里插入图片描述

启动host2上的keepalive查看是否有抢占资源问题

当host2上的keepalive服务启动成功时不会去抢占资源并且虚拟ip也没有发生飘转问题

在这里插入图片描述

本篇博客中出现的一切问题希望大家给出建议我会及时作出修改

end

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值