负载均衡高可用是分布式系统中不可或缺的重要环节,通过负载均衡按照指定的调度算法将请求分发至网络中多个节点进行处理,本文将介绍基于开源软件HAProxy实现负载均衡并且通过Keepalived实现高可用的配置方法,希望读者通过参考本文的探索成果可以快速实现高可用的软件负载均衡,也希望读者能够举一反三、触类旁通,通过自我驱动进行更深入的研究来配置更多的功能来满足自身需求。
负载均衡与高可用
负载均衡是分布式系统中不可或缺的重要环节,通过负载均衡按照指定的调度算法将请求分发至网络中多个节点进行处理,常见的负载均衡技术包括硬件负载均衡和软件负载均衡,硬件负载均衡器如F5 BIG-IP,主要应用于接入层,处理多链路负载均衡、防火墙负载均衡和服务器负载均衡,软件负载均衡则在代理层工作,常用的软件包括LVS、HAProxy和Nginx。
高可用性(High Availability,简称HA)是指系统提供一定性能上的服务运行时间高于平均正常时间段,消除系统服务不可用的时间,衡量系统是否满足高可用,就是当一台或者多台服务器宕机的时候,系统整体和服务依然正常可用,一些知名的网站保证4个9以上的可用性,即可用性超过99.99%。
Keepalived的功能及安装配置
Keepalived核心功能
1、管理LVS负载均衡软件:Keepalived最初是专为解决LVS的问题而诞生的,因此Keepalived和LVS可紧密结合。
2、实现对LVS集群节点健康检查:当LVS集群中某个节点服务器发生故障时,Keepalived服务会自动将失效的节点从正常队列中剔除,并将请求调度到别的正常的节点服务器上,从而保证用户访问不受影响。
3、网络服务高可用功能:Keepalived可以实现任意两台主机之间,如Master服务器和Backup服务器间的故障转移和自动切换,假设某个服务是不能停机的,如LVS负载均衡、Nginx反向代理服务器等,可以利用Keepalived保证其高可用性。
Keepalived高可用原理
Keepalived高可用服务的故障切换转移是通过VRRP机制来实现的,在Keepalived服务正常运行时,Master节点会不断向Backup节点发送(多播方式)心跳信息,用以通知Master节点的存活状态,当Master节点发生故障时,就无法发送心跳信息,Backup节点也就无法检测到来自Master的心跳信息,于是调用自身的接管程序,接管Master的资源和服务,当Master恢复时,Backup又会释放Master故障时自身接管的资源和服务,恢复到原来的备用角色,无论Master如何切换,对外都应该提供相同的服务IP地址,该IP也称作虚拟地址VIP,客户端并不需要因Master的改变而修改自己的配置,对他们来说这种切换是透明的。
Keepalived安装与配置
1、安装:Keepalived支持源码安装,同时也可以通过不同操作系统安装工具进行安装,本文以CentOS的yum工具为例进行安装介绍,此时应该准备两台服务器分别作为Master节点和Backup节点,分别在两台服务器上执行以下命令进行安装。
yum install -y keepalived
2、高可用配置:yum安装后,Keepalived将生成配置文件:/etc/keepalived/keepalived.conf,可利用文本编辑器进行配置修改。
vi /etc/keepalived/keepalived.conf
配置文件中主要由全局段、VRRP实例段、脚本段组成。
全局段定义(global_defs):全局段定义允许用户设置全局相关信息,例如通知信息、关键参数配置等,该段配置在Master节点和Backup节点上应当一致。
global_defs { notification_email { sysadmin@example.com } notification_email_from noreply@example.com smtp_server 192.168.32.128 #主服务器的ip地址,邮件服务器地址 smtp_connect_timeout 30 # 超时时间 router_id LVS_DEVEL # 机器标识 局域网内唯一即可。 LVS_DEVEL这字段在/etc/hosts文件中看;通过它访问到主机 }
VRRP实例段:定义了虚拟路由冗余协议实例,用于实现高可用。
vrrp_instance VI_1 { state MASTER # 两个 DS,一个为 MASTER 一个为 BACKUP interface enp1s0 # 当前 IP 对应的网络接口,通过 ifconfig 查询 virtual_router_id 62 # 虚拟路由 ID(0-255),在一个 VRRP 实例中主备服务器 ID 必须一样 priority 200 # 优先级值设定:MASTER 要比 BACKUP 的值大 advert_int 1 # 通告时间间隔:单位秒,主备要一致 authentication { # 认证机制,主从节点保持一致即可 auth_type PASS #设置验证类型和密码,MASTER和BACKUP必须使用相同的密码才能正常通信 auth_pass 1111 } virtual_ipaddress { # 自定义虚拟IP,自定义的虚拟ip得根据真实ip设置,比如真实ip是192.168.91.138,那么虚拟ip可以设置为192.168.91.139~255,前面三个数得一致 192.168.32.50 # 定义虚拟ip(VIP),可多设,每行一个 } }
脚本段:用于定义健康检查脚本,定期检查服务是否正常。
vrrp_script chk_http_port { script "/usr/local/src/nginx_check.sh" #检测脚本存放的路径 interval 2 # 检测脚本执行的间隔,即检测脚本每隔2s会自动执行一次 weight 2 #权重,如果这个脚本检测为真,服务器权重+2 }
HAProxy的功能及安装配置
HAProxy是一款免费的、开源的软件,可以在OSI模型的第四层(传输层)或第七层(应用层)上做负载均衡和反向代理,它特别适用于那些负载压力大的web站点,这些站点通常需要会话保持或七层处理,HAProxy运行在时下的服务器上,可以支持数以万计的并发连接,它允许用户定义多组服务代理,通过服务代理将流量由前端负载均衡至后端服务器节点上。
HAProxy安装与配置
1、安装:以CentOS为例,可以使用yum工具进行安装。
yum install -y haproxy
2、配置:编辑HAProxy配置文件/etc/haproxy/haproxy.cfg。
vi /etc/haproxy/haproxy.cfg
示例配置如下:
frontend fe_app bind *:80 default_backend be_app backend be_app balance roundrobin server app1 172.17.13.142:80 check server app2 172.17.13.173:80 check
Keepalived + HAProxy组合实现高可用负载均衡
由于HAProxy会存在单点故障问题,可以由Keepalived来为HAProxy提供高可用服务,同时HAProxy提供四层或七层高性能负载均衡及反向代理服务,两者共同实现高可用负载均衡,结构如图1所示。
*图1 Keepalived + HAProxy结构图
负载均衡高可用是分布式系统中不可或缺的重要环节,通过负载均衡按照指定的调度算法将请求分发至网络中多个节点进行处理,本文介绍了基于开源软件HAProxy实现负载均衡并且通过Keepalived实现高可用的配置方法,Keepalived的高可用功能通过VRRP协议实现,而HAProxy则提供了高性能的负载均衡和反向代理服务,通过Keepalived为HAProxy提供高可用服务,可以确保系统的高可用性和稳定性。
以上就是关于“负载均衡高可用怎么做”的问题,朋友们可以点击主页了解更多内容,希望可以够帮助大家!
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1383722.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复