Headless Service 是 Kubernetes 中一种特殊类型的 Service,它与普通 Service 不同,不会为应用程序创建 Cluster IP。相反,它只返回一组具有固定 DNS 名称的 Pod IP 地址列表。
Headless Service 的作用是提供一种方式来对集群中运行的多个实例进行直接访问。当您需要通过 DNS 查找服务的所有实例时,可以使用 Headless Service 来实现这个目标。
Headless Service 通常用于以下场景:
- 发现 StatefulSet:当您想要直接访问一个或多个副本时,可以使用 Headless Service。
- 使用自定义 DNS:如果您希望使用自己的 DNS 解析器,并且想要绕过 Kubernetes 内置的解析器,则可以使用 Headless Service。
需要注意的是,在 Headless Service 中,DNS 解析器将返回该服务所匹配的所有 Pod 的 IP 地址列表。这意味着如果该服务没有任何 Pod 运行,则 DNS 解析器将返回空列表。因此,在使用 Headless Service 时,请确保始终至少有一个 Pod 在运行。