Skip to main content
版本:Next

coredns

** 1. 边缘节点池中,跨节点的Pod间通过PodIP可以访问,但是通过service无法访问**

首先通过podIP可以访问,说明跨节点的容器网络(如flannel的vxlan)是正常的,然后是service不能访问的问题,可以如下来分析:

  • 在pod的net namespace内,直接访问service clusterIP是否可达
  • 如果不可达,说明kube-proxy对service的后端实例配置可能出问题,一般是service topology的问题,分析可以参照问题【边缘节点上,Service topology能力未生效】
  • 如果通过service clusterIP可达,说明是域名解析的问题。可以按下面方法分析:
  • 进入pod的net和mount namespace,查看/etc/resolv.conf 文件内容,看dns nameserver地址,一般是kube-dns service的clusterIP
  • 执行命令:dig @{dns nameserver} {service name} 发现不通
  • 执行命令: dig @{coreDNS pod ip} {service name} 可以通
  • 说明是kubed-dns service的服务拓扑路由选择没有生效,可以参照Yurthub问题【边缘节点上,Service topology能力未生效】