linux系统----LVS负载均衡集群(NET/DR)模式
目录
LVS-NAT模式配置
环境准备:
配置LVS调度器
配置web1
配置web2
测试
DR模式
负载调度器配置
调整ARP参数
配置虚拟IP地址
加载ip_vs模块
启动ipvsadm服务
配置负载分配策略
保存策略
web1节点配置
调整ARP参数
配置虚拟IP地址
添加回环路由
web1节点配置
调整ARP参数
配置虚拟IP地址
添加回环路由
测试
LVS-NAT模式配置
环境准备:
关闭防火墙和安全上下文
systemctl stop firewalld
setenforce 0
下载ipvsadm和nginx
三台机子
lvs:路由设置(两块网卡),vmnet1和NET
web1:vmnet1模式
web2:vmnet2模式
配置LVS调度器
1、三台机子,下载安装 ipvsadm
将lvs调成VMnet1
LVS不用配网关,因为它本身就是路由器
vmnet1IP:192.168.100.100
vim /etc/sysctl.conf
加载路由功能
sysctl -p
ifdown ens33 && ifup ens33
systemctl resart NetworkManager
ip a
192.168.100.100静态ip已经设置好了
添加网卡,NET模式
修改ens37配置,当作路由
192.168.158.100
ifdown ens37 && ifup ens37
systemctl restart NetworkManager
ip a
配置web1
同上述操作
配置web1网卡,并下载ipvsadm和nginx
web1 的ip:192.168.100.10
vim /etc/sysconfig/network-scripts/ifcfg-ens33
ifdown ens33 && ifup ens33
systemctl restart NetworkManager
ip a
vim /etc/sysctl.conf
改为1
sysctl -p
测试连通性,ping lvs的网关,如果能通,那和192.168.100.100ip也是通的
ping 192.168.158.100
配置web2
同上述操作
配置web2网卡
配置ens33网卡ip
网关是lvs的ip
修改路由配置
net.ipv4.ip_forward=1
[root@web2 ~]# vim /etc/sysconfig/network-scripts/
[root@web2 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
[root@web2 ~]# ifdown ens33 && ifup ens33
[root@web2 ~]# systemctl restart NetworkManager
[root@web2 ~]# ping 192.168.158.100
测试后端是否正常
启用nginx
切换lvs
访问web1和web2
[root@lvs ~]# curl 192.168.100.10
web1
[root@lvs ~]# curl 192.168.100.11
web2
添加一个虚拟服务,使用TCP协议,VIP为192.168.100.100,端口80,使用轮询(rr)调度算法:
ipvsadm -A -t 192.168.100.100:80 -s rr
在虚拟服务中添加真实服务器(使用NAT模式,):
ipvsadm -a -t 192.168.100.100:80 -r 192.168.100.10:80 -m
测试
DR模式
基于上述操作
DR模式不需要配置路由,也不需要NET模式
把net删除掉
[root@lvs ~]# vim /etc/sysctl.conf
关掉路由
[root@lvs ~]# sysctl -p
web1和web2同上操作把路由关掉
负载调度器配置
调整ARP参数
配置lvs
[root@lvs ~]# vim /etc/sysctl.conf
添加net.ipv4.conf.ens33.send_redirects = 0
[root@lvs ~]# sysctl -p
配置虚拟IP地址
[root@lvs ~]# ifconfig ens33:0 192.168.100.101/24 #临时IP
[root@lvs ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host noprefixroute valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000link/ether 00:0c:29:6a:66:62 brd ff:ff:ff:ff:ff:ffinet 192.168.100.100/24 brd 192.168.100.255 scope global noprefixroute ens33valid_lft forever preferred_lft foreverinet 192.168.100.101/24 brd 192.168.100.255 scope global secondary ens33:0valid_lft forever preferred_lft foreverinet6 fe80::20c:29ff:fe6a:6662/64 scope link noprefixroute valid_lft forever preferred_lft forever
加载ip_vs模块
modprobe ip_vs
启动ipvsadm服务
[root@lvs ~]# touch /etc/sysconfig/ipvsadm
[root@lvs ~]# systemctl enable --now ipvsadm[root@lvs ~]# ipvsadm -Ln
配置负载分配策略
[root@lvs ~]# ipvsadm -A -t 192.168.100.101:80 -s rr
[root@lvs ~]# ipvsadm -a -t 192.168.100.101:80 -r 192.168.100.10:80
[root@lvs ~]# ipvsadm -a -t 192.168.100.101:80 -r 192.168.100.11:80
[root@lvs ~]# ipvsadm -Ln
保存策略
[root@lvs ~]# ipvsadm-save > /etc/sysconfig/ipvsadm
[root@lvs ~]# cat /etc/sysconfig/ipvsadm
-A -t lvs:http -s rr
-a -t lvs:http -r 192.168.100.10:http -g -w 1
-a -t lvs:http -r 192.168.100.11:http -g -w 1
web1节点配置
调整ARP参数
作用:防止VIP在同一网络产生IP地址冲突
vim /etc/sysctl.conf
net.ipv4.conf.all.arp_ignore=1
net.ipv4.conf.all.arp_announce=2
net.ipv4.conf.default.arp_ignore=1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce=2sysctl -p
[root@web1 ~]# sysctl -p
配置虚拟IP地址
[root@web1 ~]# ifconfig lo:0 192.168.100.101/32
添加回环路由
[root@web1 ~]# route add -host 192.168.100.101/32 dev lo:0
web1节点配置
调整ARP参数
作用:防止VIP在同一网络产生IP地址冲突
vim /etc/sysctl.conf
net.ipv4.conf.all.arp_ignore=1
net.ipv4.conf.all.arp_announce=2
net.ipv4.conf.default.arp_ignore=1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce=2sysctl -p
[root@web2 ~]# sysctl -p
配置虚拟IP地址
[root@web2 ~]# ifconfig lo:0 192.168.100.101/32
添加回环路由
[root@web2 ~]# route add -host 192.168.100.101/32 dev lo:0