Keepalived 如何定义在主节点和备份节点上重启后仍然存在的 VIP?

Keepalived 如何定义在主节点和备份节点上重启后仍然存在的 VIP?

我正在尝试找到一种方法来在集群的主节点和备份节点上保留keepalived虚拟ip。

默认情况下,keepalived 仅在充当主节点的节点上激活虚拟 IP。所有其他节点都将删除它。

我想要实现的是让这个虚拟 IP 在所有节点(主节点和备份节点)上始终处于活动状态,即使在主节点重新启动之后也是如此。

到目前为止,我可以通过运行以下命令在所有节点上激活 VIP:

sudo ip addr add 192.168.1.100/24 dev enp0s3

但问题是:一旦我重新启动主节点,VIP 将从备份节点中删除。

我需要一些东西来让这些 VIP 在主服务器重启后仍然保留。有什么想法吗?

谢谢

答案1

我发现的解决方案是在所有节点的 keepalived.conf 文件级别定义一个静态 IP。此静态 IP 将与您的 VIP 不同,即使在重新启动后,它也会跨节点持久保留,您可以调用此 IP 来访问您的应用程序:

static_ipaddress {
  192.168.1.101/24 dev ens18
}

我的配置文件如下所示:

static_ipaddress {
  192.168.1.101/24 dev ens18
}
vrrp_instance VI_1 {
  state MASTER
  interface ens18
  virtual_router_id 55
  priority 150
  advert_int 1
  unicast_src_ip 192.168.1.199
  unicast_peer {
    192.168.1.84
  }

  authentication {
    auth_type PASS
    auth_pass ***
  }

  virtual_ipaddress {
    192.168.1.100/24
  }
}
virtual_server 192.168.1.101 80 {
  delay_loop 6
  lb_algo rr
  lb_kind NAT
  protocol TCP

  real_server 192.168.1.199 80 {
    TCP_CHECK {
      connect_timeout 10
    }
  }
  real_server 192.168.1.84 80 {
    TCP_CHECK {
      connect_timeout 10
    }
  }
}

相关内容