keepalived双机热备+LVS负载均衡 高可用群集
keepalived的设计目标是构建高可用的LVS负载均衡群集,可以调用ipvsadm来创建虚拟服务器,管理服务池,而不仅仅用作双击备热,使用keepalived构建的LVS群集更加简洁易用,主要体现在: 对LVS负载调度器实现热备切换,提高可用性,对服务器的节点进行健康检查。自动移除失效节点,回复后重新加入。
项目环境:准备至少两台主调度器(热备组),两台机器安装ipvsadm用于查看LVS的群集地址和VIP地址。
准备至少Web服务器
准备一台外部服务器用于实验检测
首先,在主调度服务器(热备机)中修改配置文件(IPADDR=192.168.1.2)设置网关。
[root@localhost ~]# vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs { #全局配置
router_id LVS_DEVEL1 #主调度器名称(可以随意)
}
vrrp_instance VI_1 {
state MASTER #MASTER代表主调度器
interface ens33
virtual_router_id 51
priority 100 #优先级,优先级高调度器的第一个使用
advert_int 1
authentication { #主.从调度器认证信息
auth_type PASS
auth_pass 1111
}
virtual_ipaddress { #指定VIP群集地址(漂移地址)
192.168.1.10
}
}
virtual_server 192.168.1.10 80 { #这里的功能可以相等于LVS的负载均衡功能,
LVS相应的命令设置在keepalived设置,在这里用选项代替了,更加简明易懂。
delay_loop 6
lb_algo rr
lb_kind DR
! persistence_timeout 50
protocol TCP
real_server 192.168.1.4 80 { #虚拟服务器地址,端口
weight 1 #权重
TCP_CHECK { #使用的协议
connect_port 80 #健康检查的目标端口
connect_timeout 3 #健康检查时间
nb_get_retry 3 #健康检查的重试次数
delay_before_retry 3 #重试间隔(秒)
}
}
real_server 192.168.1.5 80 { #第二台虚拟服务器信息
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
在/etc/sysctl.conf配置文件中添加
net.ipv4.conf.all.send_redirects=0
net.ipv4.conf.default.send_redirects=0
net.ipv4.conf.ens33.send_redirects=0
sysctl -p
配置完成后启动主调度器 systemctl restart keepalived.service 1,5 顶端
从调度器(192.168.1.3):scp [email protected]:/etc/keepalived/keepalived.conf /etc/keepalived/ 在主调度服务器完成配置后可以使用scp将其配置文件远程拷贝过来,再根据具体位置进行修改,因为虚拟服务器的相关配置相同所以不用做改动,改动调度服务器名称加以区分,改动优先级,改动网卡,改动从调度器调度状态。
远程scp 192.168.1.2:/etc/sysctl.conf /etc/
net.ipv4.conf.all.send_redirects=0
net.ipv4.conf.default.send_redirects=0
net.ipv4.conf.ens33.send_redirects=0
改动配置文件完成后,启动keepalived服务systemctl start keepalived.service
两台调度服务器关闭防火墙。现在可以用ipvsadm -ln命令查看LVS负载均衡群集地址以及VIP地址。
打开Web节点服务器(182.168.1.4)
开启Web服务
/etc/sysctl.conf中添加
net.ipv4.conf.all.arp_ignore=1
net.ipv4.conf.default.arp_ignore=1
net.ipv4.conf.lo.arp_ignore=1
net.ipv4.conf.lo.arp_announce=2
net.ipv4.conf.default.arp_announce=2
net.ipv4.conf.all.arp_announce=2
sysctl -p
添加回环地址vim /etc/sysconfig/network-scripts/ifcfg-lo:0
DEVICE=lo:0
ONBOOT=yes
IPADDR=192.168.1.10 #对外漂移地址,回环地址
NETMASK=255.255.255.255 #子网掩码必须是255.255.255.255
添加回环路由,防止数据包向外转发 route add -host 192.168.1.10 dev lo:0
启动Web服务,关闭防火墙。
第二台Web节点服务器(192.168.1.5)
与第一台节点服务器设置相同
打开
打开测试机(添加地址:192.168.1.1)
curl 192.168.1.10