LVS负载均衡DR模式和keepalived架构搭建

LVS负载均衡DR模式和keepalived架构搭建

一、LVS数据包流向分析

整个架构是由对外时显示一个共同的IP地址,VIP.客户端会向DR集群发送VIP请求,负载均衡器收到请求以后会根据算法会将其中的Mac地址进行修改发送给局域网中的服务器。服务器处理完请求后会根据发来数据包的原地址将其设定为目标地址直接发送过去,跳过了负载均衡器。此外如果上次发送请求的客服端有发送请求来那么负载均衡器会将请求再次发送给原来处理请求的服务器上。如果服务器宕机了,请求会转发给其他服务器进行处理。

二、DR模式的搭建

本次实验需要用到两台负载均衡服务器和两台web服务器。
1.负载均衡器的搭建。

#安装keepalived双机热备 、ipvsadm作为调度
yum install keepalived ipvsadm -y

2.开启路由功能和关闭proc响应重定向功能

net.ipv4.ip_forward=1
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0

别忘记还要sysctl -p,重启后才能生效。

3.添加虚拟网卡,因为整个群集需要在虚拟IP的基础上进行工作。

cd /etc/sysconfig/network-scripts/

#复制ens33网卡为虚拟网卡。
cp -p ifcfg-ens33 ifcfg-ens33:0
#删除虚拟网卡中的所有内容。
#加入设备名称、VIP地址和子网掩码。
DEVICE="ens33:0"
ONBOOT="yes"
IPADDR=192.168.80.10
NETMASK=255.255.255.0

4.设置负载均衡调度器启动脚本

cd /etc/init.d
#创建名称为:dr.sh的脚本文件。
vim dr.sh

#!/bin/bash
GW=192.168.80.1
VIP=192.168.80.10				#虚拟IP
RIP1=192.168.80.20			#web服务器IP
RIP2=192.168.80.30			#web服务器IP
case $1 in
start)
/sbin/ipvsadm --save > /etc/sysconfig/ipvsadm
        systemctl start ipvsadm
        /sbin/ifconfig ens33:0 $VIP broadcast $VIP netmask 255.255.255.255 broadcast $VIP up
        /sbin/route add -host $VIP dev ens33:0
        /sbin/ipvsadm -A -t $VIP:80 -s rr								#轮询算法
        /sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g				
        /sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g
        echo "ipvsadm starting------------------[ok]"
;;

stop)
 /sbin/ipvsadm -C
        systemctl stop ipvsadm
        ifconfig ens33:0 down
        route del $VIP
        echo "ipvsamd stoped--------------------[ok]"
;;

status)
if [ ! -e ar/lock/subsys/ipvsadm ];then
        echo "ipvsadm stoped--------------------"
        exit 1
                else
                echo "ipvsamd Runing-------------[ok]"
        fi
;;
esac
赋予脚本执行权限。
chmod +x /etc/init.d/dr.sh

5.重启网卡、开启虚拟端口、开启LVS服务、关闭防火墙。

systemctl restart network
ifup ens33:0
service dr.sh start
systemctl stop firewalld
setenforce 0

这样一台负载均衡器就搭建好了,第二台的搭建方式与以上方法一致。

下面进行web服务器的搭建。
1.安装web服务。

yum install httpd -y

2.创建一个网页。

echo "this is test.com" > /var/www/html/index.html
systemctl start httpd			#开启httpd服务

3.复制回环网卡,并修改为虚拟网卡


#复制网卡信息
cp ifcfg-lo ifcfg-lo:0
vim ifcfg-lo:0
#删除其中内容,添加:
DEVICE=lo:0
IPADDR=192.168.80.10
NETMASK=255.255.255.0
ONBOOT=yes

4.编辑启动脚本。

cd /etc/init.d
#创建arp规则脚本。
vim web.sh
#!/bin/bash
VIP=192.168.80.10

case "$1" in
        start)
                ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP
                /sbin/route add -host $VIP dev lo:0
        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/lo/arp_ignore
        echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
        sysctl -p > /dev/null 2>&1
        echo "RealServer Start OK "
        ;;
        stop)
                ifconfig lo:0 down
                route del $VIP /dev/null 2>&1
                echo "0" > /proc/sys/net/ipv4/conf/lo/arp_ignore
                echo "0" > /proc/sys/net/ipv4/conf/lo/arp_announce
                echo "0" > /proc/sys/net/ipv4/conf/all/arp_ignore
                echo "0" > /proc/sys/net/ipv4/conf/all/arp_announce
    echo "RealServer Stoped"
                ;;
        *)
                echo "Usage: $0 {start|stop}"
                exit 1
        esac
        exit 0
#赋予执行权限。
chmod +x web.sh

5.重启网卡、开启虚拟网卡和ARP规则、关闭防火墙

ifup lo:0
service web.sh start
systemctl stop firewalld
setenforce 0

第二台web服务器操作也是如此。
验证:能够正常访问。
在这里插入图片描述
在这里插入图片描述
两个页面不同代表LVS调度起作用了。

三、keepalived功能

修改 keepalived.conf 文件,路径为:/etc/keepalived/
vim /etc/keepalived/keepalived.conf

1.在主负载均衡器中配置:
! Configuration File for keepalived

global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 127.0.0.1				#改为127.0.0.1
   smtp_connect_timeout 30
   router_id_01					#改为_01负载均衡器序号
   vrrp_skip_check_adv_addr
   vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_instance VI_1 {
    state MASTER					#主要的为MASTER
    interface ens33
    virtual_router_id 10				#主备要在同一组之中
    priority 100					#设置优先级
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.80.10					#虚拟IP
    }
}

virtual_server 192.168.80.10 80 {			#修改与其相连的webIP地址
    delay_loop 6
    lb_algo rr					#轮询模式
    lb_kind DR					#工作模式是DR
    persistence_timeout 50
    protocol TCP

    real_server 192.168.80.20 80 {
        weight 1
      TCP_CHECK {
            connetc_port 80
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }

    real_server 192.168.80.30 80 {
        weight 1
      TCP_CHECK {
            connetc_port 80
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
在备用负载均衡器上配置:
#### 备用负载均衡器 ####
! Configuration File for keepalived

global_defs {
 notification_email {
   acassen@firewall.loc
   failover@firewall.loc
   sysadmin@firewall.loc
 }
 notification_email_from Alexandre.Cassen@firewall.loc
 smtp_server 127.0.0.1
 smtp_connect_timeout 30
 router_id_02					#id号
 vrrp_skip_check_adv_addr
 vrrp_strict
 vrrp_garp_interval 0
 vrrp_gna_interval 0
}

vrrp_instance VI_1 {
  state BACKUP					#模式是备用
  interface ens33
  virtual_router_id 10
  priority 95					#优先级要比MASTER低
  advert_int 1
  authentication {
      auth_type PASS
      auth_pass 1111
  }
  virtual_ipaddress {
      192.168.80.10
  }
}

virtual_server 192.168.80.10 80 {
  delay_loop 6
  lb_algo rr
  lb_kind DR
  persistence_timeout 50
  protocol TCP

  real_server 192.168.80.20 80 {
      weight 1
    TCP_CHECK {
          connetc_port 80
          connect_timeout 3
          nb_get_retry 3
          delay_before_retry 3
      }
  }

  real_server 192.168.80.30 80 {
      weight 1
    TCP_CHECK {
          connetc_port 80
          connect_timeout 3
          nb_get_retry 3
          delay_before_retry 3
      }
  }
}

模拟故障关闭主要负载均衡器的网络,备用开始发挥作用。
在这里插入图片描述
此地址依旧可以访问。
在这里插入图片描述
那么LVS负载均衡DR模式和keepalived架构就搭建成功了。

发布了63 篇原创文章 · 获赞 43 · 访问量 3083
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 书香水墨 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览