一个诡异的问题

Rancher Server 设置

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

下游集群信息

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

用户信息

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

主机操作系统: rockylinux8.4

问题描述:
网络环境描述:
内网环境有2套K8S集群(版本,运行的pod都一样,只是运行的pod节点数不同),集群、代码,近期都没有做任何配置更改。
这2套K8S网络不通,物理隔离,测试环境是192.168.2.11,2.12,2,13,2,14,生产环境是192.168.1.10,1.11,1.12,1.13,这8台机器,是2套K8S不同的node节点,因为有pod需要上网,所以需要和管理员申请了上网需求。他们在深信服防火墙,上边设置的内网服务器出网策略,目前有一条,允许内网这8个内网IP出网,出网的公网IP地址是 1.1.1.1,还有一条出网公网IP地址是1.1.1.2,这个时候上游机房把1.1.1.1公网IP地址给封了,管理员把这8个IP地址,放到了1.1.1.2策略中。也就是说,只是把出网的公网IP地址换了而已,我理解,不会对K8S内部出现问题。
问题描述:
192.168.2网段(测试环境无问题)的K8S集群无问题
192.168.1网段(生产环境)问题:有多个pod(微服务)其中一个pod(起了4个副本)在192.168.1 4个node节点,使用的是nodeport方式对外提供,发现,1.11上边运行的第二个pod应用调用访问1.12上边的第一个应用的pod不通,但是访问1.11的第一个应用的pod正常

还有就是,有一个web(nginx)pod,只启动了一个pod(一个副本),也是nodeport方式(pod 8080 映射到了nodeport 30000端口,在1.13运行的,正常情况,通过4个内网IP的:30000端口,应该都可以访问到这个nginx 应用,现在也是只能通过1.13:30000可以访问,其他3个内网IP:30000都无法访问,我从1.13服务器,telnetl另外3个节点的30000也不通,但是那3个机器的30000是启动的,这个时候,我把这个ngingx pod重启了,就正常了,4个IP都可以通过30000访问,我排查了各种组件的日志,也没有报错。
真不知道,是怎么引起的这个问题。目前业务已经恢复,没有场景,也不知道怎么复现。主要测试环境没有出现这个问题,生产环境出现了。
难道是Bug?

虚心,请大家请教。

重现步骤:

结果:

预期结果:

截图:

其他上下文信息:

日志


没有日志,日志也没有报错,如果是你,遇到这种问题,如何排查?正常nodeport方式,起一个pod,做了nodeport所有节点访问,应该可以通过所有的node节点ip:port 访问的,但是出现的问题是,感觉成了Hostpath模式。。

超纲了超纲了,不知道咋回事

啊哦