coredns service 连接超时(connection timed out; no servers could be reached)
node 主机测试kube-dns 解析提示连接超时
dig @10.96.0.10 kube-dns.kube-system.svc.cluster.local
# 显示如下
; <<>> DiG 9.11.26-RedHat-9.11.26-6.el8 <<>> @10.96.0.10 kube-dns.kube-system.svc.cluster.local
; (1 server found)
;; global options: +cmd
;; connection timed out; no servers could be reached修改 coredns configmap 配置,查看coredns 日志
kubectl -n kube-system edit cm coredns在 Corefile 增加log 配置
apiVersion: v1
data:
Corefile: |
.:53 {
log
errors
health {
lameduck 5s
}
...保存更改后,k8s 将这些更改传播到CoreDNS豆荚可能需要一到两分钟的时间。CoreDNS会自动加载配置。
查询coredns 所有pod日志
显示类似如下内容,没有异常信息
查看 svc 和 endpoints信息
使用dig 测试 pod ip ,查看解析
结果都是正常的, 说明coredns 服务本身没有问题
telnet 测试连通性
使用telnet 在master 主机和 node 测试 10.96.0.10 53 端口,结果都是正常的
根据网上搜索相关错误联系刚升级的flannel服务配置解决问题
根据 https://github.com/coredns/coredns/issues/3704 中信息提示,pod 网络和服务网络重叠会导致路由问题。
我猜测 可能跟我 刚更新的 cni flannel 版本到v0.20.1 有关系
flannel Network 配置如下
Kubeadm-config 中Networking配置如下
Kubeadm-config 中 serviceSubnet 不在 flannel Network 配置范围中,我修改了 flannel Network 配置如下
重启flannel ds
重新 使用dig 测试 kube-dns 域名
可以正常解析
参考:
https://medium.com/geekculture/k8s-troubleshooting-how-to-debug-coredns-issues-724e8b973cfc
https://github.com/coredns/coredns/issues/3704
https://coredns.io/manual/configuration/
https://kubernetes.io/zh-cn/docs/tasks/administer-cluster/dns-custom-nameservers/
https://github.com/kubernetes-sigs/kubespray/issues/4674
https://github.com/coredns/deployment/blob/master/kubernetes/Upgrading_CoreDNS.md
https://github.com/flannel-io/flannel/blob/v0.20.1/Documentation/configuration.md
Last updated
Was this helpful?