Kubernetes Service 使用指南
什麼是 Kubernetes Service?
Kubernetes Service 是一個穩定的網路抽象層,用來將流量導向一組符合條件的 Pod。由於 Pod 會隨著部署、擴展、重啟或節點異動而重新建立,Pod IP 並不適合作為固定存取入口;Service 則提供固定的服務名稱、虛擬 IP 與連線方式,讓應用程式可以穩定地彼此溝通。
Service 通常會透過 selector 找到帶有指定 label 的 Pod,並把流量轉送到 Pod 的 targetPort。對使用者或其他服務來說,只需要存取 Service,就不需要關心後方 Pod 的實際位置。
Service 的主要功能:
- 穩定入口:即使 Pod 被重新建立,Service 名稱與 IP 仍能維持穩定
- 服務發現:透過 Kubernetes DNS 使用 Service 名稱存取服務
- 負載分散:將請求分配到多個符合 selector 的 Pod
- 對外暴露:依照不同 Service Type,提供叢集內或叢集外的存取方式
為什麼需要 Service?
在 Kubernetes 中,Deployment 負責管理 Pod 的生命週期,但 Deployment 本身不提供固定的網路入口。當應用程式需要被其他 Pod、節點外部使用者,或雲端負載平衡器存取時,就需要透過 Service 建立對應的流量入口。