目录
一、环境
二、配置
1、master
1.在master上安装配置Keepalived
2.在master上修改配置文件
2、backup
1.在backup(192.168.229.12)上安装keepalived
2.在backup上修改配置文件
3、master和backup上启动服务
4、web服务器配置
1.web1和web2同配置
2.配置虚拟地址
3.配置路由
4.配置ARP
5、测试
1.观察lvs路由条目
2.观察vip地址在哪台机器上
3.客户端浏览器访问vip
4.关闭master上的keepalived服务,再次访问vip
5.关闭web1站点服务,再次访问VIP
一、环境
准备四台虚拟机
对四台虚拟机分别修改主机名
hostnamectl set-hostname 新主机名
192.168.229.11 dr1 负载均衡器 ----(master)
192.168.229.12 dr2 负载均衡器 ----(backup)
192.168.229.13 rs1 ----(web1)
192.168.229.14 rs2 ----(web2)
二、配置
1、master
1.在master上安装配置Keepalived
yum install keepalived ipvsadm -y
ipvsadm安装并不启动
2.在master上修改配置文件
vim /etc/keepalived/keepalived.conf
配置文件内容示例:
! Configuration File for keepalived
global_defs {
router_id Director1 #两边不一样。
}
vrrp_instance VI_1 {
state MASTER #另外一台机器是BACKUP
interface ens33 #心跳网卡
virtual_router_id 51 #虚拟路由编号,主备要一致
priority 150 #优先级
advert_int 1 #检查间隔,单位秒
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.229.100/24 dev ens33 #VIP和工作接口
}
}
virtual_server 192.168.229.100 80 { #LVS 配置,VIP,就是keepalived配置的对外地址
delay_loop 3 #服务论询的时间间隔,#每隔3秒检查一次real_server状态
lb_algo rr #LVS 调度算法
lb_kind DR #LVS 集群模式
protocol TCP
real_server 192.168.229.13 80 {
weight 1 #权重
TCP_CHECK {
connect_timeout 3 #健康检查方式,连接超时时间
}
}
real_server 192.168.229.14 80 {
weight 1
TCP_CHECK {
connect_timeout 3 #设定连接超时时间为3秒 超过视为掉线
}
}
}
2、backup
1.在backup(192.168.229.12)上安装keepalived
yum install keepalived ipvsadm -y
ipvsadm安装并不启动
2.在backup上修改配置文件
vim /etc/keepalived/keepalived.conf
修改master配置文件中的以下内容即可
router_id Director2
state BACKUP
priority 100
配置文件内容示例:
! Configuration File for keepalived
global_defs {
router_id Director2
}
vrrp_instance VI_1 {
state BACKUP #另外一台机器是BACKUP
interface ens33 #心跳网卡
virtual_router_id 51
priority 100 #优先级
advert_int 1 #检查间隔,单位秒
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.229.100/24 dev ens33 #VIP和工作端口
}
}
virtual_server 192.168.229.100 80 { #LVS 配置,VIP
delay_loop 3 #服务论询的时间间隔
lb_algo rr #LVS 调度算法
lb_kind DR #LVS 集群模式
protocol TCP
real_server 192.168.229.13 80 {
weight 1
TCP_CHECK {
connect_timeout 3
}
}
real_server 192.168.229.14 80 {
weight 1
TCP_CHECK {
connect_timeout 3
}
}
}
3、master和backup上启动服务
添加开机自启动
systemctl enable keepalived
启动
systemctl start keepalived
4、web服务器配置
1.web1和web2同配置
安装web测试站点
yum install -y httpd && systemctl start httpd && systemctl enable httpd
排查 HTTP 服务器当前的连接状态,确认它是否正在正常工作。
netstat -antp | grep httpd
自定义web主页,以便观察负载均衡结果
vim /var/www/html/index.html
内容就不再展示,自行定义。
2.配置虚拟地址
cp /etc/sysconfig/network-scripts/{ifcfg-lo,ifcfg-lo:0}
vim /etc/sysconfig/network-scripts/ifcfg-lo:0
配置内容示例:
DEVICE=lo:0
IPADDR=192.168.229.100 #对外提供服务的地址
NETMASK=255.255.255.255
ONBOOT=yes
#其他行可注释掉
重新启动network
systemctl restart network
3.配置路由
route add 192.168.229.100 dev lo
在两台机器(RS)上,添加一个路由:route add -host 192.168.229.100 dev lo 确保如果请求的目标IP是$VIP,那么让出去的数据包的源地址也显示为$VIP
4.配置ARP
vim /etc/sysctl.conf
追加到文件内容最后
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
5、测试
1.观察lvs路由条目
master上 查询 # ipvsadm -Ln
ipvsadm -Ln
2.观察vip地址在哪台机器上
master上 查询 # ip a
ens33:
inet 192.168.229.11/24 brd 192.168.229.255 scope global noprefixroute ens33
inet 192.168.229.100/24 scope global secondary ens33
3.客户端浏览器访问vip
4.关闭master上的keepalived服务,再次访问vip
systemctl stop keepalived.service
5.关闭web1站点服务,再次访问VIP
systemctl stop httpd