首页/云/云与容器速查/集群 DNS 解析失败排查

集群 DNS 解析失败排查

Pod 里域名解析失败:先确认 CoreDNS 是否就绪,再验证 resolv.conf 与实际查询。常见根因:CoreDNS Pod 异常、网络策略拦 53 端口、ndots 引发的解析路径异常。

云与容器速查云更新于 2026-10-12
第 1 步kubectl get pods -n kube-system -l k8s-app=kube-dns
第 2 步kubectl exec 业务 Pod cat /etc/resolv.conf 看搜索域
第 3 步nslookup kubernetes.default.svc.cluster.local 验证基础解析
策略拦截默认拒绝类 NetworkPolicy 要放行 UDP/TCP 53 到 kube-dns
CoreDNS 日志kubectl logs -n kube-system deploy/coredns 看错误与上游超时

排查命令

排查命令
kubectl get pods -n kube-system -l k8s-app=kube-dns -o wide
kubectl exec -it web-1 -- cat /etc/resolv.conf
kubectl exec -it web-1 -- nslookup kubernetes.default.svc.cluster.local
kubectl logs -n kube-system deploy/coredns --tail=50
上游 DNS 抖动会表现为集群内解析慢:看 CoreDNS 的 SERVFAIL/timeout 日志,别只在业务侧打转。

易错点

  • 只测外网域名:集群内部名(svc.cluster.local)与上游解析是两条路
  • 忽略 dnsConfig/ndots 调整:跨命名空间短名解析失败被误判为网络故障

数据来源与参考

  • Kubernetes Docs:DNS for Services and Pods
  • CoreDNS 文档

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌