什么是KeepAlived?原理是什么?[面试6.5]
Keepalived起初是专为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能,现在Keepalived除了能够管理LVS软件外,还可以作为其他服务(如:Nginx,MySql)的高可用解决方案软件
VRRP:虚拟路由冗余协议
LVS:linux virtual server(Linux虚拟服务器)
原理:
Master发广播包出来,Slave备机用心跳和重试机制检测Master是否已经存活,若Master宕机,设置备机的virtual_ip(VIP)并由该LVS进行接管,由于客户端通过VIP进行连接,感觉不到后端的切换变化
Master和Salve同时还会对后端微服务进行健康检查,若微服务多次响应500,这时在LVS中就删除这个服务,健康检查会一直存在,因为当该微服务恢复正常时以便于再添加到LVS中
注意: 健康检查状态可以用ipvsadm(linux下的LVS虚拟服务器的管理工具)查看
生产环境中使用KeepAlived有什么问题吗?[面试6.5]
Keepalived不能解决脑裂问题,比如一个master的keepalived挂了(VIP并未转移),一个slave接管了(拥有了VIP),这时就会出现有两个VIP,由于正常只能有一个,这时就脑裂了,可以通过脚本的方式减少脑裂,但我们生产环境并未实现,这里这个问题有待完善
LVS负载均衡有哪些调度算法?[面试5.0]
静态调度:
轮询(rr)
加权轮询(wrr)
…
动态调度:
最少连接(lc): 哪个LVS处理的少就给哪个(根据转发记录的记录来判断的)
加权最少连接(wlc)(默认)
…