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

CentOS Kubernetes集群中获取正确Calico配置文件以解决安装报错问题

CentOS Kubernetes集群中获取正确Calico配置文件以解决安装报错问题

我来帮你搞定这个Calico安装的麻烦事儿,你遇到的两个报错都是K8s和Calico版本不兼容或者文件格式出问题导致的,咱们一步步解决:

先搞清楚报错原因

  1. YAML解析错误:你第一次下载的文件可能因为重定向过程中损坏,或者文件内容格式有问题,导致kubectl无法正常解析成JSON。
  2. API版本不兼容:第二个报错里的no matches for kind "PodDisruptionBudget" in version "policy/v1beta1",是因为你的Kubernetes版本比较新(比如1.21+之后),官方已经弃用了policy/v1beta1这个API版本,换成了policy/v1,而你用的旧Calico manifest还在使用废弃的API。

正确获取Calico配置文件的方法

1. 先确认你的Kubernetes版本

首先运行这条命令查看集群版本:

kubectl version --short

Calico和K8s有严格的版本对应关系,比如K8s 1.25+需要搭配Calico v3.24及以上版本,这些新版本的Calico已经适配了policy/v1 API。

2. 下载对应版本的Calico Manifest

  • 方式一:下载指定版本的yaml文件
    根据你查到的K8s版本,选择对应的Calico版本下载。比如你的K8s是1.26版本,就下载Calico v3.25的配置文件:
curl -O https://docs.tigera.io/calico/v3.25/manifests/calico.yaml

替换命令里的v3.25为你需要的Calico版本即可,确保这个版本和你的K8s版本兼容。

  • 方式二:用自动适配的安装脚本
    如果你不想手动选版本,可以用官方的快速安装脚本,它会自动检测你的K8s版本并安装适配的Calico配置:
curl https://docs.tigera.io/calico/latest/getting-started/kubernetes/quickstart | bash

3. 手动修复现有文件(应急方案)

如果已经下载了旧的yaml文件,不想重新下载,也可以手动修改其中的PodDisruptionBudget部分:
找到文件里类似这样的段落:

apiVersion: policy/v1beta1
kind: PodDisruptionBudget
metadata:
  name: calico-kube-controllers
  namespace: kube-system
spec:
  maxUnavailable: 1
  selector:
    matchLabels:
      k8s-app: calico-kube-controllers

把apiVersion: policy/v1beta1改成apiVersion: policy/v1,然后再运行kubectl apply -f calico.yaml即可。不过更推荐用对应版本的官方manifest,避免其他隐藏的兼容问题。

4. 验证文件完整性

下载完yaml后,先验证格式是否正确,避免再次出现解析错误:

# 先安装yamllint(如果没装的话)
yum install yamllint -y
# 检查yaml格式
yamllint calico.yaml

或者用kubectl的预检查命令:

kubectl apply -f calico.yaml --dry-run=client

如果预检查通过,再正式执行安装。

安装完成后验证

安装成功后,运行下面的命令查看Calico组件状态:

kubectl get pods -n kube-system -l k8s-app=calico-node
kubectl get pods -n kube-system -l k8s-app=calico-kube-controllers

等所有Calico Pod都处于Running状态后,再看CoreDNS的状态,应该就能从Pending变成Running了。

备注:内容来源于stack exchange,提问作者noob_coder

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 10:52:58