1. 课程导论:DNS故障排查的重要性、证书轮换与CoreDNS的关系、本课程学习目标与前置知识
1.1 为什么DNS故障排查是SRE的核心能力
在云原生架构中,DNS(Domain Name System)是集群内外部通信的“第一跳”。Kubernetes 集群内的 Pod 通过 CoreDNS 解析 Service 名称、外部域名;一旦 DNS 出现故障,微服务之间的调用链会立即断裂,导致级联超时、服务雪崩。根据 CNCF 的调查报告,DNS 问题占 Kubernetes 集群故障的 30% 以上,且往往表现为间歇性超时、部分 Pod 解析失败等难以定位的“软故障”。
作为 SRE,掌握 DNS 故障排查能力意味着:
- 缩短 MTTR(平均修复时间):从“怀疑网络”到“定位 DNS 缓存/证书/上游超时”的路径更短。
- 避免误判:很多“网络抖动”或“应用慢”的根因其实是 DNS 解析超时,而非 TCP 连接或应用逻辑问题。
- 保障集群自愈:证书轮换、CoreDNS 升级等日常运维操作,如果缺乏 DNS 层面的监控和排查手段,极易引发生产事故。
经验提示: 在大型 Kubernetes 集群中,DNS 解析超时往往不是 CoreDNS 进程本身崩溃,而是上游 DNS 服务器响应慢、证书链验证失败、或 conntrack 表满导致 UDP 丢包。本课程将逐一拆解这些场景。
1.2 证书轮换与CoreDNS的关系
Kubernetes 集群内部通信广泛使用 TLS 证书,包括:
- kubelet 与 API Server 之间的双向 TLS
- CoreDNS 与 API Server 之间的 etcd 或 kube-apiserver 通信
- CoreDNS 转发上游 DNS 时的 TLS 连接(如使用 dns-over-tls)
当集群执行证书轮换(例如更新 kubelet 证书、CoreDNS 的 etcd 客户端证书、或上游 DNS 的 CA 证书)时,如果 CoreDNS 没有正确加载新证书、或证书链不完整,会导致:
| 故障场景 | 表现 | 根因 |
|---|---|---|
| CoreDNS 与 API Server 通信失败 | Pod 无法解析 ClusterIP Service | CoreDNS 的 etcd 客户端证书过期,无法 watch Service 变化 |
| 上游 DNS 证书验证失败 | 外部域名解析超时或返回 SERVFAIL | CoreDNS 转发配置中的 TLS 证书未更新,或 CA 证书不匹配 |
| kubelet 证书轮换后 DNS 缓存未刷新 | 部分节点解析异常,其他节点正常 | kubelet 使用旧证书与 CoreDNS 通信,被 CoreDNS 的 TLS 验证拒绝 |
下图展示了证书轮换影响 CoreDNS 解析的核心链路:
1.3 本课程学习目标
完成本课程后,你将能够:
- 诊断证书轮换导致的 CoreDNS 解析超时:通过 CoreDNS 日志、metrics、tcpdump 等工具,快速定位是证书过期、证书链不完整、还是证书未加载。
- 掌握 CoreDNS 证书管理最佳实践:包括证书自动轮换、Corefile 中 TLS 配置的正确写法、以及使用 cert-manager 管理集群证书。
- 构建 DNS 故障排查工具箱:熟练使用
dig、nslookup、kubectl exec、coredns -plugins、tcpdump等工具进行分层排查。 - 设计高可用的 CoreDNS 架构:避免单点故障,配置合理的上游 DNS 冗余和超时策略。
- 制定证书轮换的 SOP(标准操作流程):确保轮换操作不影响集群 DNS 解析。
1.4 前置知识要求
为了获得最佳学习效果,建议你具备以下基础:
| 领域 | 具体要求 | 推荐学习资源 |
|---|---|---|
| Kubernetes 基础 | 理解 Pod、Service、ConfigMap、Secret 等核心资源;能使用 kubectl 操作集群 | Kubernetes 官方教程 |
| DNS 协议基础 | 了解 DNS 解析流程、A/AAAA/CNAME/SRV 记录、递归与迭代查询 | RFC 1035 / 相关博客 |
| TLS/SSL 证书 | 理解证书链、CA、私钥/公钥、证书过期与轮换概念 | OpenSSL 入门指南 |
| Linux 网络调试 | 会使用 tcpdump、ss、iptables 等工具进行基本网络排查 | 《TCP/IP 详解》 |
注意: 如果你对 CoreDNS 的 Corefile 配置完全陌生,建议先阅读 CoreDNS 官方文档的“Plugins”章节。本课程会涉及
forward、kubernetes、tls、reload 等插件的配置与调试。
1.5 课程内容概览
本课程共 30 章,分为四个模块:
- 模块一(第1-5章):DNS 故障排查基础与 CoreDNS 架构
- 模块二(第6-15章):证书轮换场景深度剖析与实验
- 模块三(第16-25章):实战排查工具与案例
- 模块四(第26-30章):高可用设计与自动化运维
下图展示了课程的知识体系结构: