考点精讲
- CoreDNS 是 Kubernetes 集群的 DNS 服务器,运行在 kube-system 命名空间,为集群内的 Service 和 Pod 提供域名解析,实现服务发现。Service 的域名遵循固定格式:
. .svc.cluster.local。Headless Service 是一种特殊 Service,把 clusterIP 设为 None,不分配虚拟 IP,DNS 查询时直接返回后端所有 Pod 的 IP 列表,而不是一个 VIP。正因如此,Headless Service 常配合 StatefulSet 使用,为每个 Pod 提供稳定的 DNS 标识。理解 DNS 是「集群里的电话本」、Headless 是「不打总机、直接拨分机」,这两个概念就通了。
记忆技巧
DNS 是集群里的电话本
Headless = 无 VIP,直接指到 Pod
Headless = 无 VIP,直接指到 Pod
常见误区
- 以为 Headless Service 没有 DNS(它有,只是返回 Pod IP 而非 VIP)
- 域名解析失败先查 CoreDNS Pod 是否正常
- 混淆 svc.cluster.local 与外部域名
真题思路
- 【示例】本页题目为教学模拟题,非真题,仅用于讲解答题思路 Headless Service 的典型特征是?
clusterIP 设为 None,DNS 直接返回 Pod IP 分配一个集群内虚拟 IP 只能在集群外访问 自动扩容后端 Pod
答案:A
解析:Headless Service 设 clusterIP: None,不分配 VIP,DNS 直接返回后端 Pod IP 列表。
常见问题
Q:Service 的域名格式是什么
A:<service>.<namespace>.svc.cluster.local。
Q:Headless Service 有什么特点
A:clusterIP 为 None,DNS 直接返回后端 Pod IP 而非 VIP。
Q:域名解析失败先查什么
A:先查 kube-system 里 CoreDNS 的 Pod 是否正常运行。
相关知识
教材出处:第9章 Kubernetes服务发现 CoreDNS与Headless Service