欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 旅游 > LVS高可用负载均衡

LVS高可用负载均衡

2025/4/3 7:41:26 来源:https://blog.csdn.net/2201_75406597/article/details/146909936  浏览:    关键词:LVS高可用负载均衡

一、项目图

二、主机规划

主机系统安装应用网络IP
clientredhat 9.5NAT192.168.72.115/24
lvs-masterredhat 9.5ipvsadm,keepalivedNAT192.168.72.116/24 VIP 192.168.72.100/32
lvs-backupredhat 9.5ipvsadm,keepalivedNAT192.168.72.117/24 VIP 192.168.72.100/32
rs1redhat 9.5nginx,nfs-utilsNAT192.168.72.118/24
rs2redhat 9.5nginx,nfs-utilsNAT192.168.72.119/24
nfsredhat 9.5nfs-utilsNAT192.168.72.120/24

三、项目搭建

注意:

搭建项目前,需要将所有虚拟机的防火墙和selinux关闭

首先先修改ip地址使用nmcli命令修改和nmtui可视化修改,或者安装虚拟机时,安装了桌面的可以在虚拟机的设置里面修改。我这里就先略这个修改IP的步骤,因为本文,主要是讲述LVS高可用的具体搭建步骤,这个修改每台机子的ip只是为了更加规范。如果不想修改,也可以完成该项目,修改ip不是必须的只是为了规范项目。

每台虚拟机都需要下载相应的软件,如果没有配置本地仓库的可以先配置本地仓库,然后再进行项目搭建。在/etc/yum.repos.d下创建后缀为.repo的文件再将一下内容添加保存:

再使用mount   /dev/sr0 /mnt 挂载即可

[baseos]
name=BaseOS
baseurl=/mnt/BaseOS
gpgcheck=0
[appstream]
name=AppStream
baseurl=/mnt/AppStream
gpgcheck=0

1、配置nfs服务

(1)在nfs服务器上下载nfs服务

dnf install nfs-utils -y

(2)创建共享目录

mkdir /nfs/share -p

(3)在/etc/exports下添加如下内容

[root@nfs ~]# cat /etc/exports
/nfs/share	192.168.72.118(rw,sync)  192.168.72.119(rw,sync)

(4)添加web起始页页面内容,因为有两台web服务器,为了区分开,所以起始页内容有所不同

[root@nfs share]# echo "rs1 index.html" > index1.html 
[root@nfs share]# echo "rs2 index.html" > index2.html

(5)启动nfs服务

systemctl start nfs-server

(6)暴露共享目录

[root@nfs ~]# showmount -e 192.168.72.120
Export list for 192.168.72.120:
/nfs/share 192.168.72.119,192.168.72.118

2、 配置rs

rs1

(1)安装nginx和nfs

dnf install nginx nfs-utils -y

(2)挂载共享目录到nginx的起始页

[root@rs1 ~]# mount -t nfs 192.168.72.120:/nfs/share /usr/share/nginx/html/

(3)启动nginx和nfs

root@rs1 ~]# systemctl start nginx nfs-serve

(4)功能测试

[root@rs1 ~]# showmount -e 192.168.72.120
Export list for 192.168.72.120:
/nfs/share 192.168.72.119,192.168.72.118

 (5)自动挂载

使用 vim 编辑器打开/etc/fstab 将以下内容加入

192.168.72.120:/nfs/share	/usr/share/nginx/html/	nfs	defaults	0 0

使用systemctl daemon-reload重新加载

使用mount -a 重新挂载

(6)配置nginx

[root@rs1 ~]# vim /etc/nginx/conf.d/rs1.conf
[root@rs1 ~]# cat /etc/nginx/conf.d/rs1.conf 
server {listen	80;server_name	192.168.72.118;location / {root	/usr/share/nginx/html;index	index1.html;}
}

(7)功能测试

[root@rs1 ~]# curl 192.168.72.118
rs1 index.html

 rs2

关闭RS1服务器,然后我们对这台服务器进行克隆,取名为 RS2,然后启动 RS2 并做如下的修改。

 (1)修改ip地址以及主机名

[root@rs1 ~]# hostnamectl hostname rs2
[root@rs1 ~]# nmcli c modify ens160 ipv4.addresses 192.168.72.119/24
[root@rs1 ~]# nmcli c up ens160 

再将rs1启动

(2)自动挂载,将rs1上的/etc/fstab 使用scp命令拷贝到rs2中

[root@rs1 ~]# scp /etc/fstab 192.168.72.119:/etc/

使用systemctl daemon-reload重新加载

使用mount -a 重新挂载

(3)配置nginx

[root@rs2 ~]# vim /etc/nginx/conf.d/rs2.conf
server {listen  80;server_name     192.168.72.119;location / {root    /usr/share/nginx/html;index   index2.html;}
}

(4)功能测试

[root@rs2 ~]# systemctl restart nginx
[root@rs2 ~]# curl 192.168.72.119
rs2 index.html

3、配置LVS+keepalived

(1)安装ipvsadm和keepalived

dnf install ipvsadm keepalived -y

(2)修改配置文件

使用vim 编辑器打开/etc/keepalived/keepalived.conf

[root@lvs-master ~]# vim /etc/keepalived/keepalived.conf 
[root@lvs-master ~]# cat /etc/keepalived/keepalived.conf 
global_defs {router_id LVS_MASTER
}vrrp_instance VI_1 {state MASTERinterface ens160virtual_router_id 51priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.250.100}
}
virtual_server 192.168.250.100 80 {delay_loop 6lb_algo wrrlb_kind DRpersistence_timeout 0protocol TCPreal_server 192.168.250.118 80 {weight 3TCP_CHECK {connect_timeout 3retry 3delay_before_retry 3}}real_server 192.168.250.119 80 {weight 1TCP_CHECK {connect_timeout 3retry 3delay_before_retry 3}}
}

使用scp命令将lvs-master上的配置文件拷贝到lvs-backup上

scp /etc/keepalived/keepalived.conf root@192.168.250.117:/etc

(3)在lvs-backup上需改配置文件如下

[root@lvs-backup ~]# vim /etc/keepalived/keepalived.conf 
[root@lvs-backup ~]# cat /etc/keepalived/keepalived.conf 
global_defs {router_id LVS_BACKUP
}vrrp_instance VI_1 {state BACKUPinterface ens160virtual_router_id 51priority 80advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.250.100}
}
virtual_server 192.168.250.100 80 {delay_loop 6lb_algo wrrlb_kind DRpersistence_timeout 0protocol TCPreal_server 192.168.250.118 80 {weight 3TCP_CHECK {connect_timeout 3retry 3delay_before_retry 3}}real_server 192.168.250.119 80 {weight 1TCP_CHECK {connect_timeout 3retry 3delay_before_retry 3}}
}

(4)启动ipvsadm服务

ipvsadm-save > /etc/sysconfig/ipvsadm
systemctl start ipvsadm

(5)启动keepalived服务查看LVS规则是否添加

[root@lvs-master ~]# systemctl start keepalived 
[root@lvs-master ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.72.100:80 wrr-> 192.168.72.118:80           Route   1      0          0 -> 192.168.72.119:80           Route   1      0          0         

(6)在rs1在rs2上加上虚拟ip

ifconfig lo 192.168.72.100 netmask 255.255.255.255 up

(7)在rs上配置核心参数 

[root@rs1 ~]# vim /etc/sysctl.conf
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.lo.arp_announce = 2
[root@rs1 ~]# sysctl -p
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.lo.arp_announce = 2
[root@rs2 ~]# vim /etc/sysctl.conf
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.lo.arp_announce = 2
[root@rs2 ~]# sysctl -p
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.lo.arp_announce = 2

4、测试

[root@client ~]# curl 192.168.72.100
rs1 index.html
[root@client ~]# curl 192.168.72.100
rs2 index.html

测试成功!!!项目搭建完成

6、总结

(1)需要在rs服务器上配置核心参数

(2)启动ipvsadm服务时需要先ipvsadm-save > /etc/sysconfig/ipvsadm 再启动

(3)需要在rs上添加虚拟ip

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词