最近在生产环境使用 lvs + keepalived 的过程中遇到一个问题就是我的 keepalived 配置文件中使用了超过 20 个虚拟地址,一超过 20 个的时候就发现 keepalived 出现问题,会随机逐步把超过的 IP 给踢出集群。
所以当时的问题就是:
为什么 keepalived 超过 20 个虚拟地址会有问题?
是不是我的配置导致的?
keepalived 有个分配给 vrrp_instance 最大的虚拟 IP 的限制,数量是 20。
解决办法就是使用 virtual_ipaddress_excluded,示例:
vrrp_instance VI_1 {
interface eth0
state MASTER
virtual_router_id 51
priority 101
virtual_ipaddress{
10.200.85.100
}
virtual_ipaddress_excluded {
10.200.85.101
. all the way to
10.200.85.200
}
}
virtual_ipaddress_excluded contains a list of IP addresses that keepalived will bring up and down on the server, however they are not included in the VRRP packet itself so they don't count towards the 20 IP address limit.
Keepalived 的详细介绍:请点这里
Keepalived 的下载地址:请点这里

在使用lvs+keepalived时遇到问题,当keepalived配置文件中的虚拟地址超过20个,系统会随机移除超出的IP。原因是keepalived对vrrp_instance的最大虚拟IP限制为20。解决方法是利用virtual_ipaddress_excluded,将超出的IP地址排除在外,这些IP不会被包含在VRRP包中,从而不计入20个IP的限制。
1767

被折叠的 条评论
为什么被折叠?



