Kubernetes LoadBalancer 使用指南
什麼是 LoadBalancer Service?
Kubernetes LoadBalancer Service 是一種 Service 類型,用於將叢集內的應用程式暴露給外部網路。它會提供一個可從叢集外部存取的入口 IP,並透過 Service selector 將流量導向後端 Pod。
在雲端 Kubernetes 環境中,type: LoadBalancer 通常會自動建立雲端供應商的負載平衡器;在本機或裸機環境中,Kubernetes 本身不會自動分配外部 IP,因此常見做法是搭配 MetalLB,讓本地叢集也能取得 LoadBalancer IP。
LoadBalancer Service 的主要功能:
- 外部存取:讓叢集外部可以透過固定 IP 與連接埠存取應用程式
- 服務入口:透過 Service 提供穩定入口,避免直接依賴會變動的 Pod IP
- 負載分配:將進入 Service 的流量分配到符合 selector 的後端 Pod
- 流量策略:支援來源 IP 保留、會話親和性與內外部流量策略等設定
為什麼使用 LoadBalancer Service?
相較於 ClusterIP 或 NodePort,LoadBalancer Service 更適合需要直接對外提供 IP 入口的服務:
- 外部連線更直覺:使用者可以直接透過 LoadBalancer IP 與 Service port 存取服務
- 部署設定更清楚:Service 負責穩定入口,Deployment 負責維護後端 Pod
- 適合非 HTTP 場景:除了 HTTP 服務,也能暴露 TCP 或 UDP 類型的服務