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

Kubernetes无法查看Calico创建的projectcalico.org/v3网络策略的解决方法

问题背景

当前Kubernetes集群中存在两类不同API版本的NetworkPolicy资源定义:

# Calico 自定义网络策略
apiVersion: projectcalico.org/v3
kind: NetworkPolicy

# Kubernetes 原生网络策略
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy

执行kubectl get networkpolicy命令查询集群网络策略时,仅能返回networking.k8s.io/v1 API版本创建的策略资源,无法查询到由Calico创建、API版本为projectcalico.org/v3的网络策略。

问题原因

kubectl get networkpolicy默认匹配的是networking.k8s.io核心API组下的NetworkPolicy资源,projectcalico.org/v3版本的NetworkPolicy是Calico通过CRD(自定义资源定义)实现的独立资源,不属于Kubernetes原生NetworkPolicy的API组范畴,因此默认查询不会返回这类资源。

查看Calico v3版本NetworkPolicy的操作方法
  • 方法1:直接指定CRD资源路径查询(无需额外安装工具)
    Calico v3版本命名空间级NetworkPolicy对应的CRD全称为networkpolicies.projectcalico.org,直接在kubectl命令中指定该资源类型即可查询:

    • 查询全集群所有Calico网络策略:
      kubectl get networkpolicies.projectcalico.org -A
      
    • 查询指定命名空间下的Calico网络策略(以default命名空间为例):
      kubectl get networkpolicies.projectcalico.org -n default
      
    • 查看单条Calico网络策略的详细配置(替换尖括号内的实际值):
      kubectl get networkpolicies.projectcalico.org <策略名称> -n <所属命名空间> -o yaml
      

    注意:如果是Calico的集群级全局网络策略(GlobalNetworkPolicy,无命名空间隔离范围),对应的CRD名称为globalnetworkpolicies.projectcalico.org,查询时直接指定该资源名即可,无需加-n或-A参数。

  • 方法2:使用Calico原生命令行工具calicoctl查询
    如果集群已经部署配置了calicoctl工具,可以直接使用Calico原生命令查询,不需要输入长CRD名称:

    • 查询全集群所有Calico命名空间级网络策略:
      calicoctl get networkpolicy -A
      
    • 查看单条策略详情:
      calicoctl get networkpolicy <策略名称> -n <所属命名空间> -o yaml
      

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 14:30:43