LVS+Keepalived
环境
vip:192.168.37.10
前端lvs服务器
test11:192.168.37.11 lb01
test11:192.168.37.12 lb02后端web服务器
test13:192.168.37.13 web01
test14:192.168.37.14 web02系统版本:centos7.6
安装
安装keepalived:yum install -y keepalived。要详细了解keepalived可以参考我的另一往篇文章:keepalived
编辑keepalived配置文件
- lb01:
global_defs {
router_id test11
}
vrrp_instance VI_1 {
state MASTER
interface enp0s3
virtual_router_id 51
priority 150
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.37.10/24
}
}
virtual_server 192.168.37.10 80 {
delay_loop 6
lb_algo wrr
lb_kind DR
nat_mask 255.255.255.0
persistence_timeout 50
protocol TCP
real_server 192.168.37.13 80 {
weight 1
TCP_CHECK {
connect_timeout 5
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 192.168.37.14 80 {
weight 1
TCP_CHECK {
connect_timeout 5
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
- lb02:
global_defs {
router_id test12
}
vrrp_instance VI_1 {
state BACKUP
interface enp0s3
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.37.10/24
}
}
virtual_server 192.168.37.10 80 {
delay_loop 6
lb_algo wrr
lb_kind DR
nat_mask 255.255.255.0
persistence_timeout 50
protocol TCP
real_server 192.168.37.13 80 {
weight 1
TCP_CHECK {
connect_timeout 5
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 192.168.37.14 80 {
weight 1
TCP_CHECK {
connect_timeout 5
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
启动lb01,lb02的keepalived:
systemctl start keepalived
web端设置如下脚本:
[root@test13 ~]# cat lvs-web.sh
#!/bin/bash
cat >>/etc/sysctl.conf<<EOF
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
EOF
sysctl -p
[root@test13 ~]# sh lvs-web.sh
keepalive健康检查功能
- 查看lb01的状态
[root@test11 ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.37.10:80 wrr persistent 50
-> 192.168.37.13:80 Route 1 0 0
-> 192.168.37.14:80 Route 1 0 0
- 模拟把web02关掉,查看lb01的状态,web02被踢除
[root@test11 ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.37.10:80 wrr persistent 50
-> 192.168.37.13:80 Route 1 0 0
- 再把web02启动,再看lb01的状态,web02恢复
[root@test11 ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.37.10:80 wrr persistent 50
-> 192.168.37.13:80 Route 1 0 0
-> 192.168.37.14:80 Route 1 0 0
文档更新时间: 2020-11-10 10:29 作者:子木