Pod內部无法ping通内网dns ip

Rancher Server 设置

  • Rancher 版本:2.5.14
  • 安装选项 (Docker install/Helm Chart):
    • 如果是 Helm Chart 安装,需要提供 Local 集群的类型(RKE1, RKE2, k3s, EKS, 等)和版本:
  • 在线或离线部署:
    在线docker安装

下游集群信息

  • Kubernetes 版本: 1.20.15
  • Cluster Type (Local/Downstream):
    • 如果 Downstream,是什么类型的集群?(自定义/导入或为托管 等):

用户信息

  • 登录用户的角色是什么? (管理员/集群所有者/集群成员/项目所有者/项目成员/自定义):
    • 如果自定义,自定义权限集:

**主机操作系统:**centos7.8

问题描述:
我的集群pod内部测试可以ping通外网地址,也可以ping通我的宿主机上的域名,但是无法ping通core-dns的IP,也无法解析service-name

重现步骤:

结果:

预期结果:

截图:

其他上下文信息:

日志
看起来pod都正常没啥报错

最好把现象截个图


10.43 开头的 IP 在 rancher 里是 service ip。K8s 里的 svc ip 是无法直接 ping 的,因为svc ip 只是一个 虚拟机 IP。

感谢回复~~~
我的理解是这个10.43开头的ip是pod的DNS解析使用的IP,也就是可以解析service name
如果在宿主机ping不通我是理解的
但是在pod内也应该ping不通吗?我尝试过进入一个pod,并cat /etc/resolv.conf


如果按照您的回复,那么我在pod内ping 10.43.0.10不通是正常的吗

你理解错了,在 rancher 创建的集群里,10.43 开头的 IP 就是 service 的 ip 段,和 pod 的 ip 没任何关系。

每个 svc name 对应一个 svc ip,这个 ip 是一个虚拟ip,应该是 通过 iptables 做的转发,所以你在 pod 内也 ping 不通这个 IP 或者 svc name。

嗯嗯,我有百度资料,是我理解有误,感谢,困扰我了两天