CentOS7.5版本
lvs DR 工作模式
搭建keepalived+lvs负载均集群
环境准备:
4台虚拟机
LVS-Master:
DIP: 192.168.42.140
VIP: 192.168.42.100
LVS-Backup:
DIP: 192.168.42.141
RS1:
RIP: 192.168.42.142
RS2:
RIP: 192.168.42.143
安装配置
LVS-Master
yum -y install keepalived ipvsadm httpd
修改keepalived配置文件
vim /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.42.100
}
}
virtual_server 192.168.42.100 80 { \定义一个虚拟服务器
delay_loop 6
lb_algo rr \负载均衡算法
lb_kind DR \工作模式
protocol TCP \tcp协议
real_server 192.168.42.142 80 { \\定义一个真实服务器
weight 1 \\权重值
TCP_CHECK { \\健康检查TCP连接端口
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.42.143 80 {
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
systemctl start keepalived
systemctl enable keepalived
测试
1.查看VIP是否生成
# ip a
2.查看lvs的调度表
# ipvsadm -Ln
LVS-Backup
yum -y install keepalived ipvsadm httpd
scp root@192.168.42.140:/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf
vim /etc/keepalived/keepalived.conf
修改如下参数
state BACKUP
priority 90
systemctl start keepalived
systemctl enable keepalived
测试
1.查看VIP是否生成
# ip a
没有VIP是正确的
2.查看lvs的调度表
# ipvsadm -Ln
有调度表是正确的
RS1
yum -y install httpd
systemctl start httpd
systemctl enable httpd
echo web1 > /var/www/html/index.html
配置VIP
cd /etc/sysconfig/network-scripts/
cp ifcfg-lo ifcfg-lo:0
vim ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.42.100
NETMASK=255.255.255.255
ONBOOT=yes
ifup lo:0
ARP级别
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
静态路由
route add 192.168.42.100 dev lo:0
RS2
yum -y install httpd
systemctl start httpd
systemctl enable httpd
echo web2 > /var/www/html/index.html
配置VIP
cd /etc/sysconfig/network-scripts/
cp ifcfg-lo ifcfg-lo:0
vim ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.42.100
NETMASK=255.255.255.255
ONBOOT=yes
ifup lo:0
ARP级别
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
静态路由
route add 192.168.42.100 dev lo:0
永久设置arp级别
vim /etc/sysctl.conf
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
sysctl -p
测试
测试负载均衡效果
curl 192.168.42.100
若能看到任务别调度到不同的服务器上,说名实现了负载均衡
lvs高可用测试
停止master主机上keepalived,查看VIP是否漂移到BAKCUP节点,成功漂移,并且依然可以通过访问VIP测试到负载均衡
效果,说明高可用效果实现成功
健康检查
停止其中一台RS,在调度表中可以看到被自动删除,访问虚拟服务器,任务不再给故障的主机调度,说明健康检查功能实现成功