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

对Kubernetes NetworkPolicies双向访问控制规则的疑问

Kubernetes NetworkPolicy 规则澄清

先明确核心逻辑,解决你的误解:默认的 AllowAll 规则仅在 Pod 未关联对应方向的 NetworkPolicy 时生效。

关键规则细节

  • 当 Pod 没有被任何 Ingress 类型的 NetworkPolicy 选中时,它的 Ingress 策略默认是 AllowAll;同理,未被任何 Egress 类型的 NetworkPolicy 选中时,Egress 策略默认是 AllowAll。
  • 一旦你给某个 Pod 配置(或关联)了某一方向的 NetworkPolicy,该方向的默认规则会立刻从 AllowAll 变为 DenyAll——只有规则里明确列出的流量才会被允许。

针对你的例子分析

你提到的场景:Pod A 访问 Pod B,仅给 Pod B 配置了允许 Pod A 访问的 Ingress 规则。这种情况下:

  • Pod A 没有关联任何 Egress 类型的 NetworkPolicy,所以它的 Egress 策略保持默认 AllowAll,完全允许访问 Pod B,不需要额外配置 Pod A 的 Egress 规则。
  • 只有当 Pod A 被某个 Egress NetworkPolicy 选中时(哪怕这个 Policy 里没写任何允许规则),Pod A 的 Egress 策略才会变成 DenyAll,这时候你才必须在该 Policy 中添加允许访问 Pod B 的规则,连接才能生效。

对官方文档描述的解读

官方说“源 Pod 的 Egress 和目标 Pod 的 Ingress 必须同时允许连接”是准确的:

  • 如果 Pod 没有对应方向的 NetworkPolicy,默认的 AllowAll 就等同于“允许该连接”;
  • 只有当 Pod 有对应方向的 NetworkPolicy 时,才需要看规则是否明确允许。

你可能混淆了两种“未配置规则”的情况:

  • 完全没给 Pod 关联对应方向的 NetworkPolicy → 默认 AllowAll,流量放行;
  • 给 Pod 关联了对应方向的 NetworkPolicy,但 Policy 里没写允许规则 → 默认 DenyAll,流量被拒。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 07:45:29