Load-Balancing
在公共 IP 地址上執行單副本 Kubernetes 服務且無需負載均衡
我在 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 負載平衡是如何工作的。