四、部署LVS-DR直连路由负载均衡群集
模拟内网环境下负载均衡群集,web服务为两台http服务
负载均衡器centos7-4 ens33:192.168.109.134 ens33:0:192.168.109.188
web服务器1centos7-2 192.168.109.132
web服务器2centos7-3 192.168.109.133
nfs服务器centos7-1 192.168.109.131
客户端w7:192.168.109.200
VIP:192.168.109.188
#每台机子关闭防火墙和selinux systemctl stop firewalld systemctl disable firewalld setenforce 0
4.1 nfs服务器
centos7-1 192.168.109.131
#下载nfs服务所需的包 yum install nfs-utils.x86_64 rpcbind -y
4.2 负载均衡器
centos7-4 192.168.109.134
1.加载模块
modprobe ip_vs cat /proc/net/ip_vs yum -y install ipvsadm
2.配置虚拟IP地址
#配置虚拟IP地址(VIP:192.168.109.188) cd /etc/sysconfig/network-scripts/ cp ifcfg-ens33 ifcfg-ens33:0 vim ifcfg-ens33:0 DEVICE=ens33:0 ONBOOT=yes IPADDR=192.168.109.188 NETMASK=255.255.255.255 ifup ens33:0 ifconfig ens33:0
3.调整proc相应参数
#由于LVS负载调度器和各节点需要共用VIP地址,需要关闭icmp的重定向,不充当路由器 vim /etc/sysctl.conf net.ipv4.ip_forward=0 net.ipv4.conf.all.send_redirects=0 net.ipv4.conf.default.send_redirects=0 net.ipv4.conf.ens33.send_redirects=0 sysctl -p
4.配置负载分配策略
ipvsadm-save > /etc/sysconfig/ipvsadm systemctl start ipvsadm ipvsadm -C ipvsadm -A -t 192.168.109.188:80 -s rr #指定调度算法 ipvsadm -a -t 192.168.109.188:80 -r 192.168.109.132:80 -g #若隧道模式,-g替换为-i ipvsadm -a -t 192.168.109.188:80 -r 192.168.109.133:80 -g ipvsadm ipvsadm -ln #查看节点状态,Route代表DR模式
4.3 web服务器1
centos7-2 192.168.109.132
1.下载http服务并开启
yum install -y httpd systemctl start httpd systemctl enable httpd
2.配置虚拟IP地址(VIP:192.168.109.188)
#此地址仅用作发送Web响应数据包的源地址,并不需要监听客户机的访问请求(改由调度器监听并分发)。因此使用虚接口1o:0来承载VIP地址,并为本机添加一条路由记录,将访问VIP的数据限制在本地,以避免通信紊乱。
[root@web1 ~]# cd /etc/sysconfig/network-scripts/ [root@web1 network-scripts]# cp ifcfg-lo ifcfg-lo:0 [root@web1 network-scripts]# vim ifcfg-lo:0 DEVICE=lo:0 ONBOOT=yes IPADDR=192.168.109.188 NETMASK=255.255.255.255 #注意:子网掩码必须全为1 [root@web1 network-scripts]# ifup lo:0 #开启虚拟网卡 [root@web1 network-scripts]# ifconfig lo:0 lo:0: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 192.168.109.188 netmask 255.255.255.255 loop txqueuelen 1 (Local Loopback) #临时添加路由 [root@web1 network-scripts]# route add -host 192.168.109.188 dev lo:0 #-host 添加一个主机 #-net添加一个网段 #dev代表出站网卡 [root@web1 network-scripts]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.109.2 0.0.0.0 UG 100 0 0 ens33 192.168.109.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33 192.168.109.188 0.0.0.0 255.255.255.255 UH 0 0 0 lo 192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0 #开机自动加入路由 [root@web1 network-scripts]# vim /etc/rc.local [root@web1 network-scripts]# cat /etc/rc.local |grep route /sbin/route add -host 192.168.109.188 dev lo:0 [root@web1 network-scripts]# chmod +x /etc/rc.d/rc.local
3.调整内核的ARP响应参数以阻止更新VIP的MAC地址,避免发生冲突
vim /etc/sysctl.conf ...... net.ipv4.conf.lo.arp_ignore=1 #系统只响应目的IP为本地IP的ARP请求 net.ipv4.conf.lo.arp_announce=2 #系统不使用IP包的源地址来设置ARP请求的源地址,而选择发送接口的IP地址 net.ipv4.conf.all.arp_ignore=1 net.ipv4.conf.all.arp_announce=2 ...... sysctl -p
4.挂载NFS
[root@web1 ~]# showmount -e 192.168.109.131 Export list for 192.168.109.131: /opt/nfs/gyq 192.168.109.0/24 /opt/nfs/stevelu 192.168.109.0/24 [root@web1 ~]# mount 192.168.109.131:/opt/nfs/stevelu /var/www/html/ [root@web1 ~]# df -h 文件系统 容量 已用 可用 已用% 挂载点 /dev/mapper/centos-root 10G 4.9G 5.2G 49% / devtmpfs 897M 0 897M 0% /dev tmpfs 912M 0 912M 0% /dev/shm tmpfs 912M 9.1M 903M 1% /run tmpfs 912M 0 912M 0% /sys/fs/cgroup /dev/sda1 1014M 179M 836M 18% /boot tmpfs 183M 12K 183M 1% /run/user/42 tmpfs 183M 0 183M 0% /run/user/0 192.168.109.131:/opt/nfs/stevelu 10G 4.9G 5.2G 49% /var/www/html [root@web1 ~]# cd /var/www/html [root@web1 html]# ls index.html [root@web1 html]# cat index.html i am stevelu [root@web1 html]#
4.4 web服务器2
centos7-3 192.168.109.133
配置其他与web1相同,只有挂载的nfs目录不同
[root@web2 html]# mount 192.168.109.131:/opt/nfs/gyq /var/www/html/
4.5客户端测试
可以看到实现了负载均衡
总结
节点服务器
1.配置 lo:0 虚拟网卡 承载VIP
2.配置route add
3.修改内核配置文件 /etc/systl.conf
4.安装web应用,准备网页
调度器
1.加载模块
2.安装ipvsadm工具
3.设置虚拟网卡(为了相应ARP请求放在物理网卡上)
4.设置内核参数
5.负载均衡策略