0
点赞
收藏
分享

微信扫一扫

记录一次Calico网络组件部署报错

事情起因:

当我部署1.20版本k8s集群,正常使用如下命令部署calico网络的时候,发生了一个错误。

[root@k8s-master01 docker]# kubectl create -f https://docs.projectcalico.org/manifests/calico.yaml

记录一次Calico网络组件部署报错_docker

记录一次Calico网络组件部署报错_官网_02

组件无法正常启动

问题分析:

错误信息如下:

error: unable to recognize "https://docs.projectcalico.org/manifests/calico.yaml": no matches for kind "PodDisruptionBudget" in version "policy/v1"

分析错误:

这个错误的大致说的是在calico.yaml文件中用的api版本是“policy/v1”,没有“PodDisruptionBudget”类型的匹配项。


好,既然知道了错误的起因,那么开始解决问题:

首先检查当前k8s集群是否支持“policy/v1”api版本:

[root@k8s-master01 docker]# kubectl api-versions | grep policy

policy/v1beta1

检测发现确实不支持。因为我上面执行的命令默认下载的calico版本是最新版本的。所以,我们需要找当前k8s1.20版本所支持的calico版本,就可以解决这个问题。


Calico官网:

​https://projectcalico.docs.tigera.io/about/about-calico​

我翻阅了一下官网手册,确实没有找到对应的calico版本所支持的k8s集群版本,这可怎么办。只能测试一下了。

经测试:

当前k8s 1.20版本支持的calico版本为:3.18-3.21


部署:

[root@k8s-master01 ~]# curl https://docs.projectcalico.org/v3.21/manifests/calico.yaml -O

[root@k8s-master01 ~]# kubectl apply -f calico.yaml

记录一次Calico网络组件部署报错_ico_03


举报

相关推荐

0 条评论