DR模式LVS搭建
准备
三台机器,需要三台机器的公网IP,并且需要一个VIP。
调度器IP:192.168.42.128
服务器rs1 IP:192.168.42.129
服务器rs2 IP:192.168.42.130
VIP:192.168.42.200
在调度器上编写一个shell脚本/usr.local/sbin/lvs_dr.sh:
#! /bin/bash echo 1 > /proc/sys/net/ipv4/ip_forward ipv=/usr/sbin/ipvsadm vip=192.168.42.200rs1=192.168.42.129rs2=192.168.42.130#注意这里的网卡名字ifdown ens33ifup ens33ifconfig ens33:2 $vip broadcast $vip netmask 255.255.255.255 uproute add -host $vip dev ens33:2 $ipv -C $ipv -A -t $vip:80 -s wrr $ipv -a -t $vip:80 -r $rs1:80 -g -w 1$ipv -a -t $vip:80 -r $rs2:80 -g -w 1
在两台服务器上编写一个脚本 /usr/local/sbin/lvs_re.sh:
#/bin/bash vip=192.168.42.200 #把vip绑定在lo上,是为了实现rs直接把结果返回给客户端 ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up route add -host $vip lo:0 #以下操作为更改arp内核参数,目的是为了让rs顺利发送mac地址给客户端 echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
在三台机器上执行各自的脚本
测试
浏览器访问VIP
keepalived+LVS
LVS架构中,不论是NAT模式还是DR模式,当后端的真实服务器宕掉的时候,调度器依然会把请求转发给宕掉的服务器上,这样的结果并不是我们想要看到的。使用keepalived就可以解决这个问题,keepalived不仅有高可用功能,还有负载均衡的功能。在调度器上安装了keepalived,就不用再安装ipvsadm,一不用编写LVS相关的脚本,因为keepalived已经嵌入了LVS功能。完整的keepalived+LVS架构需要两台调度器实现高可用,提供调度服务的需要一台,另外一台做备用。
准备
为节省资源,值设置一台调度器上安装keepalived,并且准备两台服务器和准备一个VIP。
主keepalived:192.168.42.128
服务器rs1:192.268.42.129
服务器rs2:192.168.42.130
VIP:192.168.42.200
编辑keepalived配置文件 /etc/keepalived/keepalived.conf
需要更改里面ip信息,
如果以前执行过LVS的脚本就需要执行一些操作:
ipvsadm -C
systemctl restart network
两台服务器上都执行设置DR模式的脚本
调度器上启动keepalived
systemctl start keepalived
查看有没有keepalived进程
ps aux |grep keepalived
在浏览器上访问vip来检验是否成功,然后把其中一台服务器的Nginx关闭,然后刷新浏览器查看结果。
使用ipvsadm -ln查看连接数