纯lvs
说明
上一篇文章介绍过keepalived+nginx负载的方法,但是有时候情况比较复杂而又简单,例如只有lvs,那就用最原始的lvs来做这个负载均衡
环境列表
ip | 服务器名 | 说明 |
---|---|---|
192.168.1.71 | temptest1 | lvs keepalived master |
192.168.1.72 | temptest2 | lvs keepalived backup |
192.168.1.73 | temptest3 | web1 |
192.168.1.74 | temptest4 | web2 |
192.168.1.79 | vip |
lvs+keepalived安装
yum install -y keepalived ipvsadm
这个安装不想说了,everything的iso里有,找不到找网上下
lvs+keepalived的配置
keepalived.conf,以下是master的配置,backup注意更换state和priority这两项。
vrrp_instance VI_1 {
state MASTER
interface enp0s8
virtual_router_id 52
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
include /etc/keepalived/vip/*.vip
}
include /etc/keepalived/rsconf/*.conf
vip的配置文件
virtual_ipaddress {
192.168.1.79
}
rsconf
virtual_server 192.168.1.79 80 {
delay_loop 6
lb_algo rr
lb_kind DR
persistence_timeout 0
protocol TCP
include /etc/keepalived/rsconf/192.168.1.79_rs/*.rs
}
real server文件
real_server 192.168.1.73 80 {
weight 1
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 192.168.1.74 80 {
weight 1
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
启动keepalived,加入开机启动项
systemctl start keepalived
systemctl enable keepalived
# 用ipvsadm查看转发策略
ipvsadm -Ln
开机绑定vip问题
我这里遇到一个奇怪的问题,就是明明把keepalived加到了开机启动项,但是重启master后并没有开机启动,每次都要systemctl stop keepalived和systemctl start keepalived才能绑定vip
所以我写了个傻脚本
cat <<EOF>/usr/local/bin/vipup.sh
#!/bin/bash
if ! ip a|grep -q 192.168.1.79/32;then systemctl stop keepalived && sleep 2 && systemctl start keepalived;fi
EOF
chmod 755 /usr/local/bin/vipup.sh
chmod 755 /etc/rc.d/rc.local
echo "/usr/local/bin/vipup.sh">>/etc/rc.local
后端服务器的设置
keepalived+nginx的优势就是对后端服务器不需要做其他操作,但lvs转发就需要给后端服务器添加一个vip的回路,不然无法转发
ip addr add 192.168.1.79/32 dev lo
echo "ip addr add 192.168.1.79/32 dev lo">>/etc/rc.local
chmod 755 /etc/rc.d/rc.local
测试
测试和上一篇一样,不写了。
网友评论