2019-03-26笔记—LVS+keepalived

问题2:当RS的某一台机器宕机之后,LB依然还会把请求发送到宕机的机器上去,但用户访问的时候有可能遇见网页加载不出来的情况,会影响到用户的体验。

解决方案:

keepalived + LVS

实验部署:

  1. LB机器(85.128)上安装:

说明:由于keepalived集成了LVS的功能,所以LB上不需要自己写脚本,之前如果做实验有执行那个脚本,需要执行如下命令

[root@linux2019_2 ~]# yum install keepalived
[root@linux2019_2 ~]# ifdown ens33
[root@linux2019_2 ~]# ipvsadm -C
  1. 编辑配置文件 vim /etc/keepalived/keepalived.conf //修改为如下内容:
[root@linux2019_2 ~]# vim  /etc/keepalived/keepalived.conf 
vrrp_instance linux2019_02 {
    #备用服务器上为 BACKUP
    state MASTER
    #绑定vip的网卡为ens33
    interface ens33
    virtual_router_id 001
    #优先级,优先级最高的为master,备用服务器上要低于100
    priority 100
    #发送VRRP包的间隔时间
    advert_int 1
    authentication {
	auth_type PASS
	auth_pass root
    }
    virtual_ipaddress {
	192.168.85.100
    }
}
virtual_server 192.168.85.100 443 {
    #(每隔10秒查询realserver状态)
    delay_loop 10
    #(lvs 算法)
    lb_algo wlc
    #(DR模式)
    lb_kind DR
    #(同一IP的连接60秒内被分配到同一台realserver)
    persistence_timeout 60
    #(用TCP协议检查realserver状态)
    protocol TCP

    real_server 192.168.85.129 443 {
        #(权重)
	weight 100
	TCP_CHECK {
	    #(10秒无响应超时)
	    connect_timeout 10
	    # 重新检测3次
	    nb_get_retry 3
	    # 每次检测间隔时间
	    delay_before_retry 3
	    connect_port 80
	}
    }
    real_server 192.168.85.130 443 {
	weight 100
	TCP_CHECK {
	    connect_timeout 10
	    nb_get_retry 3
	    delay_before_retry 3
	    connect_port 80
	}
    }
}

[root@linux2019_2 ~]# systemctl start keepalived
  1. RS上还需要执行原来脚本(/usr/local/sbin/lvs_rs.sh)
[root@linux2019_03 ~]# sh /usr/local/sbin/lvs_rs.sh
#!/bin/bash
vip=192.168.85.100
ifdown lo
ifup lo
ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip lo:0
#更改arp内核参数,目的是为了让rs顺利发送mac地址给客户端
#参考文档https://www.imooc.com/article/79661
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

猜你喜欢

转载自blog.csdn.net/ai_benwoniu/article/details/88826681