负载均衡之keepalived
DR实验存在的隐患
- DR可能会挂,单点故障
- RS可能会挂
解决方案:
解决单点故障
- 主备:准备多个DR备用机,做好配置,主机挂掉备用机顶上
- 主主
解决RS会挂的问题
给RS发送请求,如果收到200 ok回复则说明RS正常
keepalived
keepalived就是实现了上述解决方法的工具,检测web服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的web服务器从系统中剔除,当web服务器工作正常后Keepalived自动将web服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的web服务器。
主要用途:
- 高可用:监控主机,主动替换备用机
- RS的健康检测
只需要给主机DR和备用机装keepalived监控DR,并且向RS发送请求检测RS。
keepalived的使用:
安装
yum install keepalived ipvsadm -y
备份和修改keepalived配置文件
DR配置文件:
cp keepalive.conf keepalived.conf.bak
cat /etc/keepalived.conf
global_defs {
notification_email { #设置报警邮件地址,可多行每行一个。
xxxxxxx@qq.com
}
notification_email_from keepalived@localhost #设置邮件的发送地址
smtp_server 127.0.0.1 #设置SMTP server地址
smtp_connect_timeout 30 #设置SMTP 超时时间
router_id LVS_DEVEL #运行keepalived机器的一个标识
}
vrrp_instance VI_1 { #定义一个vrrp实例,不同实例的实例编号不一样。
state MASTER #定义在keepalived的角色MASTER表示为主服务器,BACKUP为备服务器。
interface eth0 #指定HA检测的网络接口
virtual_router_id 50 #虚拟路由标示,同一个实例里的路由标示相同,且唯一。MASTER和BACKUP的路由标识一样,且唯一。
priority 100 #定义此服务器在此虚拟路由器中的优先级,优先级大权限高
advert_int 1 #检测时间间隔
authentication { #设置验证类型和密码,主从的密码必须相同,要不两者不通讯。
auth_type PASS
auth_pass 1111
}
virtual_ipaddress { #设置虚拟IP地址,可以设置多个虚拟IP地址。
192.168.233.100/24 dev ens33 label ens33:3
}
}
//配置DR主机lvs,代替使用ipvsadm配置lvs
virtual_server 192.168.233.100 80 {
delay_loop 6
lb_algo rr
lb_kind DR //模式,NAT,DR,TUN
nat_mask 255.255.255.0 //子网掩码
persistence_timeout 0 //
protocol TCP
real_server 192.168.150.12 80 {//负载机配置
weight 1
HTTP_GET {//对后端机进行健康检查的配置
url {
path /
status_code 200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
//配置RS
real_server 192.168.233.129 80 {
weight 1
HTTP_GET {
url {
path /
status_code 200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
备用DR配置:
global_defs {
notification_email {
xxxxxx@qq.com
}
notification_email_from keepalive@localhost
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 51
priority 50
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.233.100
}
}
//配置DR主机lvs,代替使用ipvsadm配置lvs
virtual_server 192.168.233.100 80 {
delay_loop 6
lb_algo rr
lb_kind DR //模式,NAT,DR,TUN
nat_mask 255.255.255.0 //子网掩码
persistence_timeout 0 //
protocol TCP
real_server 192.168.150.12 80 {//负载机配置
weight 1
HTTP_GET {//对后端机进行健康检查的配置
url {
path /
status_code 200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
//配置RS
real_server 192.168.233.129 80 {
weight 1
HTTP_GET {
url {
path /
status_code 200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
启动keepalived服务
service keepalived start
最后,如果keepalived进程挂掉呢?
使用zookper集群解决这个问题。
以上是 负载均衡之keepalived 的全部内容, 来源链接: utcz.com/z/536568.html