Centos7.4部署Web集群+LVS集群+Keepalived实现Web服务负载均衡及高可用

项目预期:

后端是Web服务器集群。部署LVS集群DR模式,实现Web服务器的负载均衡。同时部署Keepalived实现LVS集群的高可用

一、环境准备

后端Web服务器集群部署2台Web服务器,IP地址分别为192.168.4.10,192.168.4.11

LVS集群采用DR模式,调度器算法为加权均衡,两台服务器的IP分别为192.168.4.20,192.168.4.21

LVS的VIP设置为192.168.4.100

二、为web1,web2服务器安装httpd,配置web首页。启动服务。预期目标是客户机可以访问这两个页面

yum -y install httpd

echo "web1" > /var/wwwhtml/index.html

systemctl restart httpd

systemctl enable httpd

为了看到轮询效果,我们区分一些首页内容。web2的操作除了首页内容外,其他保持一直

两个web服务器搭建完毕

三、LVSK1部署LVS的DR模式,后端的Web服务器作为真实服务器,VIP为192.168.4.100,预期目标是通过访问VIP,可以访问后端的Web服务,调度器算法为加权轮询。

1、后端web服务器配置VIP(以web1为例)

web1:

cd /etc/sysconfig/network-scripts/                      ##进入网卡配置目录

cp ifcfg-lo ifcfg-lo:0                                             ##复制本地还回口,配置一个名为lo:0的虚拟网卡

vim ifcfg-lo:0                                                      ##更改网卡名,IP地址,网络地址,广播地址都指向虚拟IP。

vim /etc/sysctl.conf                                               ##修改内核配置,目的是当收到广播时,不主动回应。

systemctl restart network

web2服务器,同样操作。

2、LVSK1,配置虚拟网卡,配置虚拟VIP。这里是直接和客户端连接的,所以以物理网卡作为依托配置虚拟网卡和VIP

LVSK1:

cd /etc/sysconfig/network-scripts/

cp ifcfg-eth0 ifcfg-eth0:0

vim ifcfg-eth0:0

修改网卡名称,设备名称,IP地址

systemctl restart network

3、LVSK1,安装ipvsadm,配置LVS虚拟机等相关参数

yum -y install ipvsadm

ipvsadm -A -t 192.168.4.100:80 -s wrr                         ##创建虚拟服务器 调度器算法为加权轮询

ipvsadm -a -t 192.168.4.100:80 -r 192.168.4.10 -g -w 1   ##添加真实服务器到虚拟服务器,LVS模式为DR模式,权重为1

ipvsadm -a -t 192.168.4.100:80 -r 192.168.4.11 -g -w 2   ##添加真实服务器到虚拟服务器,LVS模式为DR模式,权重为2

ipvsadm-save -n > /etc/sysconfig/ipvsadm                   ##保存LVS的配置

systemctl restart ipvsadm                                             ##启动ipvsadm服务

阶段目标完成,LVS解决了web集群的负载均衡的问题。

四、阶段问题,这里虽然解决了web的负载均衡的问题,但LVS存在单点故障。这里提出的解决模式是

配置LVS集群,然后使用Keepalived,实现LVS集群的高可用。预期目标,客户端访问VIP可以获取web服务,当一台LVS出现故障的时候,仍然不影响客户端的访问。

1、由于LVS的VIP归到Keepalived管理了。所以我们先把LVSK1的虚拟网卡撤销。删除刚刚做的虚拟网卡的配置文件,重启network即可

2、参考LVSK1的流程,把LVSK2部署完毕。

3、由于转发规则由Keepalived负责,所以清空LVSK1的所有规则

ipvsadm -C

4、LVSK1、LVSK2安装Keepalived。修改配置,启动服务(这里已LVSK1为例)

yum -y install keepalived

vim /etc/keepalived/keepalived.conf

这里的配置解释一下

报警接受邮件地址

报警发送邮件地址

邮件服务器

邮件连接超时时间

虚拟接口名称

状态

使用的网卡

虚拟路由ID

权重

keepalived通信协议秘钥

接下来的,就算是ipvsadm的规则了

虚拟服务器的地址

调度器模式

LVS模式

使用的协议。

后端真实服务器的相关信息,包括权重,使用协议等等

systemctl restart keepalived

LVSK2,同样操作配置keepalived的服务,不同的地方router_id LVS_DEVEL这个地方区别一下。还有权重区别一下,stats这里,就用BACKUP,作为备份

配置如下

都启动服务

五、验证

到目前为止,预期目标是没有实现的。经常第一次排查。我发现

我的LVSK1的keepalived配置文件是有误的。比较奇怪的是服务居然能起来。好的,把错误修正。重启服务。

还是不行。再次排查。192.168.4.100的虚拟IP是可以ping通的。而且登录LVSK1,由于权重问题,VIP的确是在这个服务器上面。然后ipvsadm -Ln查询LVS规则,一切正常。为什么不通呢。访问web1,web2服务,是完全正常的,由此得知,问题出在LVS服务器上。有一个点断掉了。排查防火墙,selinux。那么剩下最后一个,就是NAT转发。查询一下

原来NAT转发没开。那么,两天LVS的服务器,都打开这个转发

sysctl -w net.ipv4.ip_forward=1

要永久生效,请写到配置文件

还是不行,服务也正常启动,所以的细节再检查一次,发现配置文件书写有误

这里的}  有问题,马上更正,并且检查LVSK2

重启服务,再测试

完成~~~~

我们测试一下。模拟故障,看看

由于权重的关系,VIP是在LVSK1上的。我们模拟一下。LVSK1关闭。看看VIP是否会漂移。其他机器访问VIP是否还OK

看看VIP是否在LVSK2

测试完全OK

这里我们总结一下

后端Web服务器集群。使用LVS实现负载均衡,为了解决LVS的单点故障,我们做LVS集群,并且使用Keepalived实现LVS的高可用。这里有个小瑕疵就是LVS是有MASTER和BACKUP的,一主一备。备服务器是闲置的。有点浪费资源

在这里抛砖引玉,可以设置好抢占的,双VIP。然后就可以实现LVS的负载均衡了。

发布了73 篇原创文章 · 获赞 4 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_27592485/article/details/96163402