週末,GCP LB 將我們的一個實例標記為不健康。沒有任何改變,沒有重新部署,其他實例都很好。
我正在使用 TCP 運行狀況檢查,以下內容按預期變為 0。
nc localhost 80 -z; echo $?
如何調試 GCP 認為節點不健康的原因?
更新:
我將運行狀況檢查更改為 SSL,然後再更改回 TCP80,現在 Google 認為節點運作狀況良好。這有點令人擔憂。
答案1
運行狀況檢查失敗的最常見原因是將服務僅綁定到執行個體的外部 IP 位址,而不是負載平衡器的位址。
您需要讓您的伺服器程序偵聽主機上所有配置的位址。這樣,運行狀況檢查將對負載平衡器的外部位址進行操作。
您將找到有關如何在 Google 雲端平台上的負載平衡中調試運行狀況檢查的大量信息這裡。
答案2
就我而言,這是因為防火牆規則。此執行個體位於共用 VPC 的自訂子網路中,需要根據允許手動新增負載平衡器和執行狀況檢查器的 IP 位址(如文件中所述)。