Linux学习20190326
当RS的某一台机器宕机之后,LB依然还会把请求发送到宕机的机器上去,但用户访问的时候有可能遇见网页加载不出来的情况,会影响到用户的体验。
解决方案:
keepalived + LVS
实验部署:
-
LB机器(95.128)上安装:
由于keepalived集成了LVS的功能,所以LB上不需要自己写脚本,之前如果做实验有执行那个脚本,需要执行如下命令
yum install keepalived
ifdown ens33
ipvsadm -C -
编辑配置文件 vim /etc/keepalived/keepalived.conf //修改为如下内容:
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.95.100
}
}
virtual_server 192.168.95.100 443 {
#(每隔10秒查询realserver状态)
delay_loop 10
#(lvs 算法)
lb_algo wlc
#(DR模式)
lb_kind DR
#(同一IP的连接60秒内被分配到同一台realserver)
persistence_timeout 60
#(用TCP协议检查realserver状态)
protocol TCPreal_server 192.168.95.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.95.130 443 {
weight 100
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
systemctl start keepalived
3. RS上还需要执行原来脚本/usr/local/sbin/lvs_rs.sh
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地址给客户端
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