永久保存ipvadm规则
ipvsadm -Sn
永久设置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
lvs 没有健康检查
keepalived
通过keepalived来管理lvs
1.可以自动生成VIP地址
2.可以自动创建虚拟服务器和真实服务器
3.可以实现对后端的真实服务器实现健康检查,工作异常的主机,会从调度表中移除,恢复后再自动添加回来
4.可以实现lvs的高可用
搭建keepalived+lvs负载均集群
环境准备:
4台虚拟机
LVS-Master:
DIP: 192.168.189.172
VIP: 192.168.189.181
LVS-Backup:
DIP: 192.168.189.173
RS1:
RIP: 192.168.189.174
RS2:
RIP: 192.168.189.175
安装配置
LVS-Master
yum -y install keepalived ipvsadm
修改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.189.181
}
}
virtual_server 192.168.189.181 80 { \定义一个虚拟服务器
delay_loop 6
lb_algo rr \负载均衡算法
lb_kind DR \工作模式
protocol TCP \tcp协议
real_server 192.168.189.174 80 { \\定义一个真实服务器
weight 1 \\权重值
TCP_CHECK { \\健康检查TCP连接端口
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.189.175 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
scp root@192.168.189.172:/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 1111111111111111 > /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.189.181
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.189.181 dev lo:0
RS2
yum -y install httpd
systemctl start httpd
systemctl enable httpd
echo 2222222222222222 > /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.189.181
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.189.181 dev lo:0
测试
测试负载均衡效果
curl 192.168.189.181
若能看到任务别调度到不同的服务器上,说名实现了负载均衡
lvs高可用测试
停止master主机上keepalived,查看VIP是否漂移到BAKCUP节点,成功漂移,并且依然可以通过访问VIP测试到负载均衡
效果,说明高可用效果实现成功
健康检查
停止其中一台RS,在调度表中可以看到被自动删除,访问虚拟服务器,任务不再给故障的主机调度,说明健康检查功能实现成功