高可用:顾名思义就是可用性比较高,实际意义就是当一台节点出现故障时,keepalived服役将选出另一台节点能够透明化的将此节点所承担的功能顶替。

简介:keepalived一开始是为了LVS设计,专门用来监控集群系统中各个服务节点的状态,如果某个节点出现故障,Keepalived将检测到后自动给剔除

后来keepalived加入了VRRP的功能(虚拟路由冗余协议)出现目的是解决静态路由出现的单点故障问题,通过VRRP可以实现网络不间断稳定运行。
健康检查和失败切换是它的两个核心功能。所谓健康检查通常是,采用TCP三次握手,ICMP请求,HTTP请求,UDP,echo请求等方式对实际的服务器进行保活。失败切换是应用于配置了主备模式的负载均衡器,利用VRRP维持主LB的心跳,当出现问题时,由备LB进行顶替。以此来保证业务的正常运行。

工作原理:

  1. 网络层:通过icmp协议向后端服务器集群发送数据报文
  2. 传输层:利用TCP协议的接口连接和扫描技术检测后端服务器集群是否正常
  3. 应用层:自定义keepalive工作方式(脚本)

VRRP协议

是一种容错的主备模式的协议,保证当主机的下一跳出现问题时,由另一台路由器来代替出现故障的路由器进行工作。
虚拟路由器:VRRP组中的所有路由器,只有一个虚拟IP+MAC地址
主路由器:虚拟路由器中只有一台路由器对外提供服务。由选举算法产生
备份路由器:VRRP组中除了主路由器外的其他路由器。不提供服务,只接受主路由的通告。当主路由器挂掉之后,重新进行选举算法接替MASTER路由器。
选举机制:

  • 优先级:
  • 抢占模式:一旦有优先级高的路由器加入,即成为Master
  • 非抢占模式:只要master不挂掉,优先级高的路由器只能等待

三种状态:

  • innitialize:系统启动进入状态
  • Master:
  • Backup:

    体系结构:

    image.png

    KEEPalived运行时启动三个进程。

    core:负载主进程的启动,维护和全局配置文件的加载
    check:健康检查
    vrrp:实现VRRP协议