https://blog.csdn.net/weixin_43328213/article/details/87887105 【没有特殊的配置,难道是用的默认值?】
https://www.cnblogs.com/maxtgood/p/9599068.html
==========
https://www.cnblogs.com/jinjiangongzuoshi/p/9253278.html
https://zhuanlan.zhihu.com/p/59215319
===keepalive
https://zhuanlan.zhihu.com/p/148136167 [good]
https://blog.csdn.net/l1028386804/article/details/72801492?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4.nonecase
https://blog.csdn.net/u013256816/article/details/49127995
参考资料:https://zhuanlan.zhihu.com/p/143295216
会有2台服务器运行Keepalived,一台为主服务器(MASTER),一台为备份服务器(BACKUP),但是对外表现为一个虚拟IP,主服务器会发送特定的消息给备份服务器,当备份服务器收不到这个消息的时候,即主服务器宕机的时候,
备份服务器就会接管虚拟IP,继续提供服务,从而保证了高可用性。
虚拟路由冗余协议,可以认为是实现路由器高可用的协议,即将N台提供相同功能的路由器组成一个路由器组,这个组里面有一个master 和多个 backup,master 上面有一个对外提供服务的 VIP(Virtual IP Address)
(
该路由器所在局域网内其他机器的默认路由为该 vip),master 会发组播,当 backup 收不到 vrrp 包时就认为 master 宕掉了,这时就需要根据 VRRP 的优先级来选举
一个 backup 当 master。这样的话就可以保证路由器的高可用了
keepalived 主要有三个模块,分别是core、check 和 vrrp。core 模块为keepalived的核心,负责主进程的启动、维护以及全局配置文件的加载和解析。check 负责健康检查,包括常见的各种检查方式。
vrrp 模块是来实现 VRRP 协议的。
选举策略
首先,每个节点有一个初始优先级,由配置文件中的priority
配置项指定,MASTER 节点的 priority 应比 BAKCUP 高。运行过程中 keepalived 根据 vrrp_script 的 weight
设定,增加或减小节点优先级。规则如下:
weight
值为正时,脚本检测成功时”weight”值会加到”priority”上,检测失败时不加- 主失败: 主priority < 备priority+weight之和时会切换
- 主成功: 主priority+weight之和 > 备priority+weight之和时,主依然为主,即不发生切换
weight
为负数时,脚本检测成功时”weight”不影响”priority”,检测失败时,Master节点的权值将是“priority“值与“weight”值之差- 主失败: 主priotity-abs(weight) < 备priority时会发生切换
- 主成功: 主priority > 备priority 不切换
- 当两个节点的优先级相同时,以节点发送
VRRP通告
的 IP 作为比较对象,IP较大者为MASTER。
priority 和 weight 的设定
- 主从的优先级初始值priority和变化量weight设置非常关键,配错的话会导致无法进行主从切换。比如,当MASTER初始值定得太高,即使script脚本执行失败,也比BACKUP的priority + weight大,就没法进行VIP漂移了。
- 所以priority和weight值的设定应遵循: abs(MASTER priority - BAKCUP priority) < abs(weight)。一般情况下,初始值MASTER的priority值应该比较BACKUP大,但不能超过weight的绝对值。
- 另外,当网络中不支持多播(例如某些云环境),或者出现网络分区的情况,keepalived BACKUP节点收不到MASTER的VRRP通告,就会出现脑裂(split brain)现象,此时集群中会存在多个MASTER节点。