问题描述:
kubectl apply -f calico.yaml 之后查看pod 显示
之后再等了一会calico-kube-controllers的status直接error了
解决办法先查看日志
表明程序在尝试获取 Calico 的集群信息时连接超时了。
就是和apiserver的ip地址不通
后续查看ipvsadm -Ln 查看转发规则也没问题
也指定了本机网卡名字
重启calico之后也没有效果,最后听取他人建议升级一下calico版本
先来看一下现在calico版本
确实太低了,决定升级到3.26试一下
1: 先删除calico
kubectl delete -f calico.yaml
2: 在控制节点和工作节点都导入calico3.26的镜像包
地址:https://github.com/projectcalico/calico/releases/download/v3.26.1/release-v3.26.1.tgz
[root@k8smaster1 ~]# ctr -n=k8s.io image import calico.tar.gz
[root@k8snode1 ~]# ctr -n=k8s.io image import calico.tar.gz
[root@k8snode2 ~]# ctr -n=k8s.io image import calico.tar.gz
导入完之后用
crictl image ls 查看一下有没有
3: 在master节点导入calico.yaml
curl -O -L https://raw.githubusercontent.com/projectcalico/calico/v3.26.1/manifests/calico.yaml
vim calico.yaml
在value: "k8s,bgp"下面加入红框中的两行
注意: interface=ens33 ens33是我本机的网卡名字,大家可以自己通过 ip addr 查看
kubectl apply -f calico.yaml #安装calico
升级完之后果然全部正常了
再来看一下版本:
已经升级到了3.26.1
pod 也全部正常running