首页/云/Kubernetes 速查/Headless 与 ClusterIP 的行为差异
本包目录(307 条)
kubectl 基础56 条工作负载36 条
网络与服务55 条
配置与存储54 条调度与资源52 条集群运维与排障54 条

Headless 与 ClusterIP 的行为差异

Headless(clusterIP: None)不分配虚拟 IP,DNS 直接返回后端 Pod IP;ClusterIP 返回虚拟 IP 由 kube-proxy 转发。两者用途不同。

Kubernetes 速查云更新于 2026-10-12

对比

维度ClusterIPHeadless
DNS 返回虚拟 IP 一个就绪 Pod IP 列表(A 记录)
转发方式kube-proxy 规则做四层转发客户端直连某个 Pod
典型场景无状态服务统一入口有状态集群互相发现、自定义负载均衡
负载均衡由 kube-proxy 随机/轮询客户端自行实现

创建与验证

创建与验证
kubectl get svc db-headless -o jsonpath='{.spec.clusterIP}'
kubectl run dns-test --rm -it --image=busybox:1.36 --restart=Never -- nslookup db-headless.prod.svc.cluster.local
Headless 不分配虚拟 IP:spec.clusterIP 只能写 None;需要统一入口时用普通 ClusterIP Service。

易错点

  • Headless 没有虚拟 IP,业务代码不能假设固定连接地址,需要发现逻辑或依赖客户端库
  • 未就绪 Pod 默认不进 DNS 应答,滚动重启期间列表会动态变化

数据来源与参考

  • Kubernetes 官方文档 · Headless Services
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌