0

我正在嘗試使用負載平衡器將流量引導到容器後端。容器中的服務在port 80上託管網絡流量。我的健康檢查全部過去了。如果我進入容器的Kubernetes主機,我可以捲曲每個容器並通過port 80獲得正確的響應。但是,當我嘗試通過負載均衡器外部IP訪問它們時,我收到了502響應。我有防火牆規則允許從130.211.0.0/22tcp:1-5000和NodePort端口上的流量。我也嘗試將0.0.0.0/0端口80和443的防火牆規則添加到這些節點。谷歌負載平衡器沒有將流量傳遞到後端

當在Kubernetes主機中使用tcpdump進行捕獲時,我看到了對我的容器的運行狀況檢查請求,但是當我發出外部請求時,沒有流量通過。

我有一個完全相同的配置,指向一個完美工作的單個計算引擎虛擬機。這使我相信這個問題可能在容器設置而不是負載均衡器中。

有沒有人有任何建議來解決這個問題?

+0

您是使用入口對象還是手動配置負載平衡器?您可能想嘗試使用入口對象,並將其產生的配置與您現在正在查看的配置進行比較,以查看是否有明顯不同的東西。 –

回答

1

我能夠通過更改Load Balancer連接到的命名端口來解決問題。默認情況下,負載均衡器連接到命名端口「http」,它指向端口80.這是我的假設(總是一件壞事),因爲我的應用程序服務於端口80,所以這匹配。由於我通過NodePort公開了容器,因此它被分配了另一個端口。這是我的健康檢查指向的端口。通過進入「計算引擎 - >實例組」選擇組,然後選擇「編輯組」,我可以改變命名端口「http」以匹配我的NodePort號碼。一旦我做到了,流量開始流動。