Keepalived主要是通过虚拟路由冗余来实现高可用功能。本文将不对keepalived的基本原理进行阐述,可参考文章Keepalived详细介绍简介、keepalived vip漂移基本原理及选举算法。本文记录了在实践过程中使用keepalived时,在weight值变化的情况下vip不漂移的问题及解决方法。
场景
3个keepalived节点, vip为172.31.23.6:
- devops1a-zoocassa0 172.31.23.22
- devops1a-zoocassa1 172.31.23.23
- devops1a-zoocassa2 172.31.23.24
预期
- 三个节点初始都设为BACKUP,按照优先级(priority)选举MASTER;
- 在三个节点上检查memcached服务状态,失败则降低优先级;
- 如果MASTER(假设为devops1a-zoocassa0)上检查失败,BACKUP上检查成功,则优先级高的BACKUP节点(假设为devops1a-zoocassa1)切换为MASTER节点;
- 之前检查失败的MASTER(devops1a-zoocassa0)上的服务恢复时, 之前的BACKUP节点(devops1a-zoocassa1)服务检查也成功,即使devops1a-zoocass