2
负载均衡之keepalived - 会飞的鱼aaa
source link: https://www.cnblogs.com/casheww/p/16309916.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
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 { #设置报警邮件地址,可多行每行一个。 [email protected] } 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 { [email protected] } 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集群解决这个问题。
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK