本章说明:
CoreDNS 是 Kubernetes 集群的默认 DNS 服务,为集群内的 Service 提供域名解析功能。在 Kubernetes 集群中,每个 Service 都会被分配一个虚拟 IP(ClusterIP),但用户通常不需要记住这些 IP 地址,而是通过 Service 名称进行访问。CoreDNS 负责将 Service 名称解析为对应的 ClusterIP,实现服务发现。kubeadm 在集群初始化时已自动部署了 CoreDNS,但由于网络插件未部署时 CoreDNS Pod 无法分配 IP,一直处于 Pending 状态。上一章部署 Calico 网络插件后,CoreDNS Pod 已自动变为 Running。本章将验证 CoreDNS 状态、测试 DNS 解析功能、讲解 CoreDNS 配置,并提供日常运维和常见问题排查方法。
部署节点:仅 master01
9.1 CoreDNS 简介
作用说明:了解 CoreDNS 的基本概念和架构,有助于后续的配置调整和问题排查。
9.1.1 为什么需要 DNS?
在 Kubernetes 集群中,Pod 的 IP 地址是动态变化的,Service 的 ClusterIP 虽然相对稳定,但用户直接记住 IP 地址不现实。通过 DNS,用户可以使用 Service 名称(如my-service.default.svc.cluster.local)来访问服务,由 CoreDNS 自动解析为对应的 IP 地址。