无法在 kubernetes 集群上下载 calico

无法在 kubernetes 集群上下载 calico

我正在尝试在 centos 上设置 kubernetes 集群,安装 calico 是其中一步。我的控制平面已准备就绪,但coredns仍处于待处理状态。

我从互联网上获得了以下命令来在网络上安装 calico curl https://docs.projectcalico.org/manifests/calico.yaml -O

但当我打开文件时它说Redirecting to https://docs.tigera.io/calico/latest/manifests/calico.yaml

然后我运行了curl https://docs.tigera.io/calico/latest/manifests/calico.yaml -O 这个下载了一个文件,但是当我运行时kubectl apply -f calico.yaml 出现以下错误 error: error parsing calico.yaml: error converting YAML to JSON: yaml: line 19: mapping values are not allowed in this context

所以我从这个链接粘贴了 calico 文件https://docs.projectcalico.org/manifests/calico.yaml并运行kubectl apply -f calico.yaml ,结果出现了这个错误

error: resource mapping not found for name: "calico-kube-controllers" namespace: "kube-system" from "calico.yaml": no matches for kind "PodDisruptionBudget" in version "policy/v1beta1"
ensure CRDs are installed first

我从哪里以及如何获取正确的 calico 文件。

答案1

您可能会找到正确的文件 - 具体取决于您使用的版本 -github

看看文档对于“为本地部署安装 Calico 网络和网络策略”,第一步是在您的集群上安装操作员:

kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.26.1/manifests/tigera-operator.yaml

然后下载自定义资源:

curl https://raw.githubusercontent.com/projectcalico/calico/v3.26.1/manifests/custom-resources.yaml -O

kubectl create -f custom-resources.yaml

watch kubectl get pods -n calico-system

或者,calico 松弛通道也许能有所帮助。

答案2

你运行的是哪个版本的 Kubernetes?PodDisruptionBudgetKubernetes 中引入了 v1 API v1.21,因此至少需要该版本。

只需运行以下命令即可轻松修复:

sudo apt-get update
sudo apt-get install -y kubelet kubectl kubeadm
sudo apt-mark hold kubelet kubeadm kubectl

相关内容