Load-Balancing
Azure 內部負載均衡器忽略第二個 VM
我**在 Azure 上有 2 個 Ubuntu 虛擬機(舊管理面板上的經典虛擬機)。**我在同一個雲服務下創建了這兩個虛擬機。我還創建了一個負載平衡端點
80 (public)
,80 (private)
兩台機器都具有此端點、協議HTTP
和探測路徑/probe
。當我瀏覽到執行兩個 VM 的雲服務的 IP 時,我得到了我期望的響應。
如果我關閉 VM 2 並保持 VM 1 執行,它仍然可以工作,但是當我關閉 VM 1 並離開 VM 2 時,我會在瀏覽器中遇到連接故障。
我玩過,VM2 從來沒有收到任何流量。我的應用程序上有一個端點,
/probe
它為負載均衡器探測返回狀態為 200 的不可記憶體響應。我嘗試通過呼叫在虛擬機上測試它們
wget localhost/probe
我在兩台機器上都試過了,只有在 VM1 執行時才能得到正確的輸出。當 VM 1 關閉並且我在 VM 2 上執行此命令時,它無法連接到該地址。我認為這是問題所在,但無法弄清楚如何解決它。
更新:
我在應用程序中添加了日誌記錄,它似乎只是在探測第一台虛擬機。
我必須在 Azure 管理面板中的兩個虛擬機上添加負載平衡終結點。非常愚蠢的錯誤。
此外,每個虛擬機都需要有一個有效的端點,對我來說是
<address>/healthcheck
. 這個端點需要做的就是總是返回一個non-cache-able response with status 200
. 不需要其他任何東西,Azure 內部負載均衡器會處理其餘部分。