Load-Balancing

在公共 IP 地址上執行單副本 Kubernetes 服務且無需負載均衡

  • July 31, 2016

我在 GKE/Kubernetes 中執行一項服務,該服務在 Staric IP 地址上公開單個 UDP 埠。(我已經從 GCE 中的臨時 IP 地址提升了靜態 IP 地址。)如果我使用以下欄位部署它,則服務是可訪問的。

spec:
 type: LoadBalancer
 loadBalancerIP: <static-ip-address>

但是,我不打算執行我的服務的多個副本,而且我什至不確定 GKE 的負載均衡器是否與 UDP 一起使用,因此我想嘗試不使用。

以下替代配置尚不起作用。有了它,服務就會啟動,但在不同的 IP 地址上,因此無法根據需要從外部訪問。

spec:
 type: NodePort
 externalIPs:
 - <static-IP-address>

那麼,在沒有負載平衡器的情況下,在“自己的”靜態 IP 地址上執行外部可見的服務是可能的,如果是這樣的話怎麼辦?

更新進一步的進展表明工作平衡器也適用於 UDP,但它似乎仍然是多餘的。

L3/4 負載均衡器將接收傳入的 UDP 數據包並選擇一個後端將它們發送到。如果你只有一個後端,那麼所有的數據包都會在那裡結束。一旦您有多個後端,那麼您將需要了解負載均衡器是否平衡了數據包流的各個數據包(基於 {source ip, dest ip, source port, dest port, protocol} 的 5 元組)。您應該閱讀本節以了解 GCP 的 UDP 負載平衡是如何工作的。

引用自:https://serverfault.com/questions/791653