确认Kubernetes不同Namespace下Pod间默认Ingress/Egress流量是否受限
你的理解是错误的。Kubernetes默认情况下(当Namespace没有任何NetworkPolicy时),集群内所有Pod之间的Ingress和Egress流量都是完全允许的,无论Pod是否属于同一个Namespace。不存在“跨Namespace流量默认被阻断”的原生规则。
你的测试中出现的超时和丢包,大概率是其他因素导致的,而非Kubernetes的默认行为。以下是具体分析和排查方向:
核心规则重申
Kubernetes的NetworkPolicy是白名单机制:只有当你定义了NetworkPolicy时,才会对Pod的流量进行限制;没有任何Policy时,所有流量(包括跨Namespace)都不受限制。
你的测试问题排查方向
先确认同Namespace内的连通性
先在default Namespace内部测试Nginx Pod是否正常可访问,排除Nginx本身的问题:kubectl run test-internal --rm -it --image=busybox --restart=Never -- wget --spider 100.64.9.198如果这个测试也失败,说明Nginx Pod本身未正常启动,或者Pod所在节点的网络有问题。
检查CNI插件的特殊配置
部分CNI插件(如Calico、Cilium)允许集群管理员配置全局默认隔离策略,如果你的集群开启了这类配置,可能会导致跨Namespace流量被默认阻断。可以通过查看所有Namespace的NetworkPolicy确认:kubectl get networkpolicies --all-namespaces检查节点间网络连通性
登录到busybox Pod所在的节点,尝试ping Nginx Pod所在节点的主机IP,确认节点之间的网络是否被防火墙、安全组阻断。排查第三方流量管控插件
如果集群中部署了服务网格(如Istio)、防火墙插件等,这些组件可能会默认拦截跨Namespace的流量,需要检查相关插件的配置。确认Pod的网络配置
检查两个Pod的IP是否属于同一集群网络段,是否存在路由问题:# 查看default Nginx Pod的详细信息 kubectl describe pod myhttpd -n default # 查看mywebapp中busybox Pod的详细信息 kubectl describe pod myhttpd -n mywebapp
内容的提问来源于stack exchange,提问作者Zama Ques

