觀點 · 資訊分享
GKE 混合協定負載平衡正式上線:TCP 與 UDP 共用一個 IP,Dataplane V2 節點上限也翻倍
Google Kubernetes Engine 在 7/27 公布兩項更新:LoadBalancer 服務可同時處理 TCP 與 UDP 並共用同一個 IP(GA),以及 1.36 版 Dataplane V2 搭配 NetworkPolicy 的單叢集節點上限由 7,500 提高到 15,000。
- 發布
- 2026-07-27
- 篇幅
- 約 4 分鐘 · 1,608 字
- 結構
- 8 節 + 3 題常見問題
- 標籤

一句話看懂:GKE 的 LoadBalancer 服務現在可以同一個 IP 同時接 TCP 與 UDP(正式版),另外 Dataplane V2 搭配 NetworkPolicy 的單叢集節點上限,也從 7,500 提高到 15,000。

先用白話講:TCP、UDP 與負載平衡器
網路傳資料有兩種常見方式:TCP 像掛號信,確認對方收到才算完成,網頁、API 都用它;UDP 像平信,丟出去就算,速度快,常用在即時語音、影音、遊戲與 DNS。
負載平衡器則是大樓的櫃台,把進來的訪客分給後面的多台伺服器。以前 GKE 要對外開放一個同時用到 TCP 與 UDP 的應用,通常得開兩個 LoadBalancer 服務,連帶有兩個 IP;現在一個就夠了。
發生什麼事
GKE 在 7 月 27 日的發行說明中公布兩項更新:
- 混合協定 LoadBalancer 服務正式上線(GA):內部與外部的直通式網路負載平衡器,都能在同一個 IP 上同時處理 TCP 與 UDP,支援 IPv4、IPv6 與雙協定,需要 1.36.2-gke.1498000 以上版本。正式版也修正了預覽階段的流量路由錯誤
- Dataplane V2 的節點上限提高:1.36 以上版本,Dataplane V2 搭配 NetworkPolicy 的單叢集節點上限由 7,500 提高到 15,000;超過 5,000 個節點的叢集,要聯絡 Cloud 客戶支援申請配額
混合協定怎麼設定?
官方文件的外部負載平衡器範例,重點是指定 loadBalancerClass,並在 ports 同時列出兩種協定:
apiVersion: v1
kind: Service
metadata:
name: mixed-protocol-external-lb
spec:
loadBalancerClass: "networking.gke.io/l4-regional-external"
type: LoadBalancer
selector:
app: mixed-app
ports:
- name: tcp-port
protocol: TCP
port: 8080
- name: udp-port
protocol: UDP
port: 8080
內部版本把 loadBalancerClass 改成 networking.gke.io/l4-regional-internal 即可。
使用前要知道的限制
- 叢集必須啟用 HttpLoadBalancing 附加元件;內部負載平衡器還要啟用 GKE 子集功能
- 1.34.1 到 1.36.2 之前的版本,只支援外部、IPv4 的混合協定
- 帶有
gke.networking.io/l4-ilb-v1或l4-netlb-v1終結器的既有服務不能直接用,要刪除後重建 - 更新連接埠可能造成短暫的流量中斷
- 不能掛 Private Service Connect
計費差別
依官方文件,計費項目是轉發規則、外部 IP 位址與傳送的資料量。1.36.2-gke.1498000 以上的外部混合協定使用單一的 L3 轉發規則;更早的版本則是 TCP、UDP 各一條,共 2 條。
我的看法
這個更新對「只有網頁與 API」的團隊沒有太大感覺,但對要在 Kubernetes 上開 UDP 的服務很實用,例如自架 DNS、即時語音或是遊戲伺服器。以前兩個 IP 要分別處理防火牆、DNS 紀錄,客戶端也得記兩組,現在可以收斂成一個。
15,000 節點的上限對小團隊幾乎碰不到,不過它透露一件事:GKE 在大型叢集裡,網路政策的規模限制正在往上推。提醒一下,正式使用前要先確認叢集版本與既有服務的終結器,這類「要刪除重建」的限制,最好在測試環境先走過一遍。
名詞小辭典
- TCP/UDP:網路傳資料的兩種方式,前者確認送達、後者追求速度。
- 負載平衡器:把流量分配給多台伺服器的設備或服務。
- GKE:Google 提供的託管 Kubernetes 服務。
- Dataplane V2:GKE 的新一代網路資料平面,支援網路政策。