我有Azure 上的 2 个 Ubuntu VM(旧管理面板上的经典 VM。)我在同一个云服务下创建了两者。我还创建了一个负载平衡端点80 (public)
,80 (private)
两台机器都具有此端点、协议HTTP
和探测路径/probe
。
当我浏览两个虚拟机都在运行的云服务的 IP 时,我得到了我期望的响应。
如果我关闭 VM 2 并保持 VM 1 运行,它仍然可以工作,但是当我关闭 VM 1 并离开 VM 2 时,浏览器中会出现连接失败。
我试过,VM2 从未收到任何定向到它的流量。我的应用程序上有一个端点/probe
,它为负载均衡器探测返回状态 200 的不可缓存响应。我尝试通过调用在虚拟机上测试它们
wget localhost/probe
我在两台机器上都尝试过这个,只有当 VM1 运行时才能获得正确的输出。当 VM 1 关闭时,我在 VM 2 上运行此命令,它无法连接到该地址。我认为这就是问题所在,但不知道该如何解决。
更新:
我向应用程序添加了日志记录功能,它似乎只探测第一个虚拟机。
答案1
我必须在 Azure 管理面板中的两个虚拟机上添加一个负载平衡端点。非常愚蠢的错误。
此外,每个虚拟机都需要有一个有效的端点,对我来说,它是<address>/healthcheck
。此端点需要做的就是始终返回一个non-cache-able response with status 200
。不需要其他任何东西,Azure 内部负载均衡器会处理其余部分。