Summary

A clear explanation of Kubernetes Service Discovery: why Pod IPs are ephemeral and unreliable for direct addressing, and how Kubernetes Services use label selectors to maintain a stable ClusterIP and DNS name pointing to a dynamic set of matching Pods. The key insight is that Kubernetes doesn’t stabilize Pods — it stabilizes access to Pods.

這篇文章解釋 Kubernetes Service Discovery 的核心問題:Pod IP 是暫時的,若直接連線 Pod 會因 Pod 重建而連到失效 IP。Service 透過標籤選擇器將流量路由到一組 Pod,提供穩定的 ClusterIP 與 DNS 名稱,即使 Pod 動態增減也不受影響。

Key Points

  • Pods in a Deployment each get their own IP, which changes when Pods are rescheduled
  • Kubernetes Services use label selectors (e.g., app: user-service) to group Pods dynamically
  • Service provides a stable ClusterIP and DNS name independent of underlying Pod lifecycle
  • New Pods are auto-added; dead Pods auto-removed from the Service endpoint list

Insights

The phrase “Kubernetes doesn’t make Pods stable. It makes access to Pods stable” is a memorable summary of a key architectural principle. This level-of-indirection pattern (stable name → dynamic resolver → ephemeral backends) is universal in distributed systems and applies equally to service meshes, DNS-based load balancing, and cloud load balancers.

Connections

Raw Excerpt

Kubernetes doesn’t make Pods stable. It makes access to Pods stable. That’s the real purpose of a Service. Not just load balancing. But solving the “changing IP” problem elegantly.