You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows Worker节点上的Pods无法访问CoreDNS问题排查求助

解决Windows Worker节点Pod DNS解析故障

1. 检查Windows节点CNI插件兼容性

  • 确认Windows节点使用的CNI插件(如Flannel、Calico)适配Windows Server 2019及当前K8s版本,部分CNI插件对Windows的网络转发逻辑有特殊要求,比如Flannel需开启VXLAN/Host-gw模式并配置正确的网络网段。
  • 在Windows节点主机执行route print,验证是否存在指向集群服务网段(通常为10.96.0.0/12)及CoreDNS Service IP(默认10.96.0.10)的路由条目,缺失则需手动补充或重启CNI服务。

2. 验证CoreDNS网络可达性

  • 在Windows节点主机直接ping CoreDNS的Service IP和Pod IP:若主机能连通但Pod无法连通,说明CNI的Pod到集群网络转发规则异常。
  • 检查Windows防火墙规则:确保允许Pod网段(如10.244.x.0/24)与集群服务网段之间的UDP 53(DNS)、ICMP通信,缺失则添加规则:
    netsh advfirewall firewall add rule name="Allow K8s DNS UDP" dir=in action=allow protocol=UDP localport=53 remoteip=<Pod网段>/24
    netsh advfirewall firewall add rule name="Allow K8s DNS TCP" dir=in action=allow protocol=TCP localport=53 remoteip=<Pod网段>/24
    

3. 检查Pod DNS配置

  • 进入Windows Pod内部,查看C:\Windows\System32\drivers\etc\resolv.conf和hosts文件,确认nameserver是否指向CoreDNS的Service IP(10.96.0.10)。
  • 检查Windows节点kubelet配置:确认启动参数中的--cluster-dns和--cluster-domain与Linux节点一致,若配置错误则修改kubelet服务配置并重启。

4. 排查CoreDNS运行状态

  • 在Master节点执行kubectl get pods -n kube-system -l k8s-app=kube-dns,确认CoreDNS Pod均处于Running状态且无频繁重启。
  • 查看CoreDNS日志:kubectl logs -n kube-system <coredns-pod-name>,检查是否存在拒绝Windows Pod请求或DNS解析异常的记录。

5. 验证kube-proxy服务状态

  • 在Windows节点查看kube-proxy运行日志:
    Get-EventLog -LogName Application -Source kube-proxy -Newest 20
    
  • 确认kube-proxy模式(IPVS/iptables)适配Windows:IPVS模式需确保节点已安装IPVS组件,iptables模式需确认WinDivert组件正常运行,异常则重启kube-proxy服务。

6. 手动测试DNS解析

  • 在Windows Pod内执行指定CoreDNS IP的解析命令:nslookup google.pl 10.96.0.10,若能返回结果说明Pod默认DNS配置错误;若仍超时则聚焦排查Pod到CoreDNS的网络连通问题。

内容的提问来源于stack exchange,提问作者Kambey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 18:25:39