我有一个由以下设置组成的服务器集群:
2 个带有 2 个 NIC 的虚拟服务器。 eth0(私网10.0.0.0/16)和eth1(公网77.1.2.0/24,网关为77.1.2.1)
对于 HA-01 VPS,我将 eth0 上的私有 IP 设置为 10.0.0.1 对于 HA-02 VPS,我将 eth0 上的私有 IP 设置为 10.0.0.2
Pacemaker/Corosync 集群已在私有 IP 地址和定义为克隆资源 (IPAddr2) 的虚拟 IP (77.1.2.4) 之间建立,因此它可以在两个节点之间浮动。
pcs resource create VirtualIP1 ocf:heartbeat:IPaddr2 ip="77.1.2.4" cidr_netmask="24" nic="eth1" clusterip_hash="sourceip-sourceport" op start interval="0s" timeout="60s" op monitor interval="1s" timeout="20s" op stop interval="0s" timeout="60s" clone interleave=true ordered=true
问题是,我无法从世界上访问该 IP 地址。我注意到缺少一条路由,所以我添加了静态路由
ip r add default via 77.1.2.1 dev eth1
但我仍然无法从这些服务器 ping google.com,世界也无法在该 IP 上看到它们。我还尝试在 eth1 上添加来自同一子网的 IP 地址,如下所示:
HA-01 eth1: 77.1.2.2
HA-02 eth1: 77.1.2.3
服务器可以按世界在这些 IP 上看到,但如果我添加 VirtualIP 资源,我无法通过虚拟 IP 地址访问它们。我还尝试在路由表中添加源IP
ip r add default via 77.1.2.1 src 77.1.2.4
无济于事。我不知道我应该做什么才能让这个 VirtualIP 正常工作。我可以从该网络上的其他服务器访问 77.1.2.4(虚拟 IP 地址),但不能访问该网络之外的服务器。
防火墙已建立并通过命令传递高可用性端口
firewall-cmd --add-service="high availability"; firewall-cmd --add-service="high availability" --permanent
这里有什么我想念的吗?如果我在其中一台服务器的接口上单独添加该地址(77.1.2.4 - 虚拟 IP),它将起作用......那么 ARP 表是否存在问题,或者路由器可能会阻止某些流量?
答案1
看看这个问题:https://serverfault.com/questions/778997/pacemaker-virtual-ip-loadbalancing-with-clone-and-clusterip
我认为这是一个路线问题。尝试问题中的最后一条评论,由strzelecki.maciek
.他应用了一些 iptables 预路由,这很有帮助。也许是你的情况。