目录
一、环境准备
二、实验拓扑
三、部署LVS DR环境
四、LVS服务器配置keepalived
1、安装keepalived
2、修改lvs1服务器keepalived配置
3、修改lvs2服务器keepalived配置
五、客户端测试
1、负责均衡测试
2、LVS服务器高可用测试
一、环境准备
准备4台centos服务器和一台客户端
服务器 | 主机名 | IP | 备注 |
客户端 | / | 192.168.2.5 | / |
LVS服务器1 | lvs1 | DIP:[ens33]192.168.2.10/24 VIP:[ens33]192.168.2.100/24 | 关闭selinux和firewalld |
LVS服务器2 | lvs2 | DIP:[ens33]192.168.2.11/24 VIP:[ens33]192.168.2.100/24 | 关闭selinux和firewalld |
Web服务器1 | web1 | DIP:[ens33]192.168.2.20/24 VIP:[ens33]192.168.2.100/32 | 关闭selinux和firewalld |
Web服务器2 | web2 | DIP:[ens33]192.168.2.20/24 VIP:[ens33]192.168.2.100/32 | 关闭selinux和firewalld |
二、实验拓扑
实验目标:在LVS-DR模式的基础上,使用keepalived对LVS服务器的VIP实现高可用。
三、部署LVS DR环境
参考:LVS-DR模式部署_桂安俊@kylinOS的博客-CSDN博客
其中将LVS服务器环境复制一份,建立2台主备LVS服务器,并将LVS服务器的VIP配置删除,下面用keepalived实现LVS服务器的VIP,并实现VIP高可用。
四、LVS服务器配置keepalived
1、安装keepalived
#lvs1和lvs2服务器都执行
yum install keepalived -y
systemctl enable keepalived
ipvsadm -C #清空lvs规则
2、修改lvs1服务器keepalived配置
vim /etc/keepalived/keepalived.conf #内容如下
! Configuration File for keepalived
global_defs {
router_id lvs1 #设置路由ID,每个节点设置不一样
vrrp_iptables #禁止设置防火墙规则,默认会自动添加防火墙拒绝所有
}
vrrp_instance VI_1 {
state MASTER #主服务器Master
interface ens33 #网卡名
virtual_router_id 51 #主辅VRID号必须一致
priority 100 #服务器优先级
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.2.100 #虚拟IP
}
}
#LVS规则配置
virtual_server 192.168.2.100 80 { #LVS VIP和端口
lb_algo rr #设置LVS调度算法为rr,轮询
lb_kind DR #设置LVS模式为DR模式
#persistence_timeout 50 #开启后,客户端在指定时间(单位秒)内始终访问相同服务器,这里为了实验效果先关闭,生产环境应开启
protocol TCP #设置TCP协议
real_server 192.168.2.20 80 { #设置后端web服务器真实IP和端口
weight 1 #设置权重为1
TCP_CHECK { #对后台real_server做健康检查,比如这里检查192.168.2.20的80端口是否正常
connect_timeout 3 #每次连接超时时间为3秒
nb_get_retry 3 #如果连不上,就试3次
delay_before_retry 3 #每隔3秒检查一次
}
}
real_server 192.168.2.30 80 { #设置后端web服务器真实IP和端口
weight 1 #设置权重为1
TCP_CHECK { #对后台real_server做健康检查
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
systemctl restart keepalived
ip a s ens33 #查看vip
ipvsadm -Ln #查看lvs集群
3、修改lvs2服务器keepalived配置
vim /etc/keepalived/keepalived.conf #内容如下
! Configuration File for keepalived
global_defs {
router_id lvs2 #修改,与lvs1不同
vrrp_iptables
}
vrrp_instance VI_1 {
state BACKUP #设置为backup
interface ens33
virtual_router_id 51 #和lvs1保持一致
priority 50 #备机优先级比主master低一点
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.2.100
}
}
virtual_server 192.168.2.100 80 {
lb_algo rr
lb_kind DR
#persistence_timeout 50
protocol TCP
real_server 192.168.2.20 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.2.30 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
systemctl restart keepalived
ipvsadm -Ln
五、客户端测试
1、负责均衡测试
2、LVS服务器高可用测试
将192.168.2.100所在服务器关机,查看VIP漂移到备机,并正常提供LVS负载均衡服务
注1:lvs也是自带健康检查的,如果web1宕机,lvs集群会自动剔除web1,当web1恢复正常后,lvs会将web1重新加入lvs集群。
注2:如果使用客户端浏览器测试轮询,应使用火狐浏览器(ctrl+f5强制刷新),使用谷歌和360浏览器测试发现不会轮询,始终访问的一个IP。