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

Calico v3.28.0集群GlobalNetworkPolicy资源映射报错求助

问题

我拥有一个安装了Calico(Helm Chart版本v3.28.0)的Kubernetes集群,此前已多次成功应用Calico NetworkPolicy。但突然之间,应用完全相同的策略时出现如下错误:

$ kubectl apply -f my-policy.yaml
error: resource mapping not found for name: "my-policy" namespace: "" from "my-policy.yaml": no matches for kind "GlobalNetworkPolicy" in version "projectcalico.org/v3"
ensure CRDs are installed first

请问为何该操作突然失效?

可能的原因及解决思路
  • Calico CRD 被意外删除或损坏:GlobalNetworkPolicy 是Calico自定义资源,依赖对应的CRD(CustomResourceDefinition)。如果CRD被误删、或者集群更新过程中CRD损坏,kubectl就无法识别该资源类型。可以执行kubectl get crd globalnetworkpolicies.projectcalico.org检查是否存在,若不存在,需重新安装对应v3.28.0版本的Calico CRD。
  • kubectl 上下文切换错误:可能当前kubectl切换到了未部署Calico的其他集群,或者上下文的集群配置出现异常。执行kubectl config current-context确认当前上下文是否为目标集群,再通过kubectl get pods -n calico-system检查Calico组件的运行状态。
  • Calico 控制平面组件异常:Calico的核心组件(如calico-typha、calico-controllers)故障或未正常运行,会导致CRD的识别出现问题。检查calico-system命名空间下的Pod状态,查看是否有崩溃、重启的实例,通过Pod日志排查具体异常。
  • Kubernetes API Server 缓存不一致:API Server的资源缓存可能出现偏差,导致无法正确识别Calico的CRD。可以尝试重启API Server组件,或等待缓存自动刷新,也可执行kubectl api-resources | grep projectcalico.org确认Calico资源类型是否能被正常列出。
  • Calico Helm Chart 被意外变更:如果有人对Calico的Helm Chart执行了更新或回滚操作,可能导致CRD版本与当前集群不匹配。执行helm list -n calico-system检查Calico的Helm发布版本,确认是否仍为v3.28.0,若版本不符,需回滚到正确版本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 04:07:11