简述keepalived工作原理

keepalived的原理是vrrp原理和lvs原理的组合

vrrp 协议的软件实现,原生设计目的为了高可用 ipvs服务
官网:http://keepalived.org/

功能:

  • 基于vrrp协议完成地址流动
  • 为vip地址所在的节点生成ipvs规则(在配置文件中预先定义)
  • 为ipvs集群的各RS做健康状态检测(通过访问指定页面返回结果进行健康性检查)
  • 基于脚本调用接口完成脚本中定义的功能,进而影响集群事务。
  • 支持nginx、haproxy等服务

1.VRRP 网络层硬件实现

image-20220705171735166

企业内访问外网通过路由器实现,为了防止路由器出问题,因此要两台路由器,但是两台路由器的ip和网关都不一样,将两台路器虚拟出同一个ip(vip)和网关,让客户端的网关都指向新的网关,同一时间只运行在一台路由器上,不同时间进行浮动,避免冲突。当一台出问题,vip就会立即浮动到另一台机器,保证能持续上网。
vrrp工作主机为了第一时间知道对方主机的情况,通过建立心跳线沟通,采用发免费arp的方法告知对方自己的工作状态,工作的主机发免费的arp,(可以广播,也可以单播),目的就是告知自己拥有vip,并告知自己的优先级,备用节点接收到消息与自己的优先级进行对比,自己的优先级低于工作的节点,自己就不工作,当接收不到免费的arp,或者工作的节点的优先级低于自己,从节点就会开始工作,此时从节点获取vip进行工作。
可以采用防火墙策略破坏彼此的心跳线,则因为接收不到免费的arp,此时两台主机主机都会获得vip,就会产生脑裂现象,如果发生了脑裂现象,首先是要关掉一台主机的keepalived服务,保证服务能够正常工作,然后再查明原因进行维护。

2.Keepalived的结构和使用lvs规则进行工作

官方文档: https://keepalived.org/doc/

http://keepalived.org/documentation.html

在这里插入图片描述

  • 用户空间核心组件:
    vrrp stack:VIP消息通告
    checkers:监测real server
    system call:实现 vrrp 协议状态转换时调用脚本的功能
    SMTP:邮件组件
    IPVS wrapper:生成IPVS规则Netlink Reflector:网络接口WatchDog:监控进程

  • 控制组件:提供keepalived.conf 的解析器,完成Keepalived配置

  • IO复用器:针对网络目的而优化的自己的线程抽象

  • 内存管理组件:为某些通用的内存管理功能(例如分配,重新分配,发布等)提供访问权限

keepalived分为内核空间和用户空间,ipvs是lvs的核心组件,通过IPVS wrapper组件把lvs规则通过keepalived写入lvs内核空间,控制lvs的调度策略,lvs生产中就是配合keepalived使用的,netlink reflector组件实现vip的策略,VRRP Stack 实现vip浮动。Checkers实现健康性检查,丰富了lvs的缺失功能,Keepalived的出现就是弥补lvs的不足,实现生产中的高可用。SMTP是邮件报警服务。Keepalive的还可以和nginx进行配合,因为nginx代理的主备关系之间不能健康性检查和公用,通过Keepalived实现。代理高可用就靠keepalived实现。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值