问题描述
K8s版本1.23.6
calico-node-反复重启,READY状态一直为0,STATUS为CrashLoopBackOff,
查看节点日志
#calico-node-xxx 对应pod名称
kubectl logs calico-node-xxxx -n kube-system
没有错误,只有info信息
但是一直反复重启,导致coredns一直处于未准备好状态
最后试出来的结论
calico与k8s的版本未匹配
解决:
删除calico,重新安装对应k8s版本
先删除calico pod
#删除calico pod
kubectl delete -f calico.yaml
删掉calico.yaml文件
rm -f calico.yaml
重新下载
k8s版本1.23.6 calico版本3.23
curl https://docs.projectcalico.org/v3.23/manifests/calico.yaml -O
重新安装
修改 calico.yaml 文件中的 CALICO_IPV4POOL_CIDR 配置,修改为与初始化(master中kubelet init的pod-network-cidr)的 cidr 相同
删除镜像 docker.io/ 前缀,避免下载过慢导致失败
sed -i 's#docker.io/##g' calico.yaml
#构建calico应用
kubectl apply -f calico.yaml
之后再查看,发现运行正常
查看calico与k8s版本匹配
官网查看匹配链接