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

如何阻止Kubernetes Pod与10.12.12.0/27节点网段通信?

正确的NetworkPolicy配置方案

原配置存在两个核心问题:

  • podSelector.matchLabels使用了namespace: default,但Kubernetes默认不会给Pod添加这个标签,无法匹配目标Pod;
  • 出站规则逻辑完全相反,原配置仅允许Pod访问10.12.12.0/27网段,而非禁止。

以下是符合需求的配置:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: block-net-kubernetes
  namespace: default
spec:
  # 匹配default命名空间下所有Pod
  podSelector: {}
  policyTypes:
    - Egress
  egress:
    # 允许访问除10.12.12.0/27之外的所有IP网段
    - to:
        - ipBlock:
            cidr: 0.0.0.0/0
            except:
              - 10.12.12.0/27
    # 允许访问Kubernetes DNS服务,保证Pod域名解析正常
    - to:
        - namespaceSelector:
            matchLabels:
              kubernetes.io/metadata.name: kube-system
          podSelector:
            matchLabels:
              k8s-app: kube-dns
      ports:
        - protocol: UDP
          port: 53
        - protocol: TCP
          port: 53

配置说明:

  • podSelector: {}:匹配当前命名空间(default)下的所有Pod,无需额外标签。
  • ipBlock.cidr: 0.0.0.0/0:允许访问所有IP地址段,通过except字段排除需要禁止的10.12.12.0/27网段。
  • 新增DNS访问规则:Pod通常需要依赖Kubernetes DNS服务解析域名,因此必须允许访问kube-system命名空间下的DNS Pod(适配kube-dns或CoreDNS),否则会导致Pod无法解析外部或集群内域名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 02:25:22