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

如何通过Kubernetes NetworkPolicy阻断Pod互联网访问仅允许10.0.0.0/8网段

问题根因与解决方案

你当前配置的默认拒绝所有出站的网络策略语法符合规范,配置后仍然能访问公网通常是以下几类原因导致,对应的解决方案如下:

1 确认集群满足网络策略生效前提

  • Kubernetes 网络策略必须由集群使用的CNI插件支持才能生效,如果你使用的是不支持网络策略的CNI(比如未开启网络策略扩展的Flannel、原生不支持的基础CNI实现),所有NetworkPolicy配置都不会生效。目前支持网络策略的主流CNI包括Calico、Cilium、Weave Net等,如果你使用的是Flannel,需要额外安装网络策略控制器组件才可让策略生效,请先确认你的集群CNI配置符合要求。
  • 检查目标Pod是否开启了hostNetwork: true,使用主机网络的Pod不受集群网络策略管控。
  • 排查集群中是否存在其他优先级更高的全局出站允许策略,覆盖了你配置的拒绝规则。

2 符合需求的完整网络策略配置

你需要实现Pod仅可访问10.0.0.0/8本地网段、阻断公网访问的需求,可直接使用以下合并后的配置:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: restrict-egress-only-local
spec:
  podSelector: {} # 匹配所有Pod,你也可以调整标签选择器指定需要限制的Pod范围
  policyTypes:
  - Egress
  egress:
  - to:
    - ipBlock:
        cidr: 10.0.0.0/8

该策略会明确禁止所有匹配Pod访问10.0.0.0/8以外的所有网段,包括公网。

3 生效验证

配置完成后进入Pod测试:

  • 访问10.0.0.0/8内的内部服务:可正常连通
  • 访问公网地址(比如公共HTTP服务、公共DNS):连接超时/失败即为配置生效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 07:24:02