k8s集群使用calico的相关问题

运行时pod出现Ready下出现 0/1

在这里插入图片描述

1.Readiness probe failed: caliconode is not ready: BIRD is not ready: BGP not established with 172.168.200.135

★ 发现配置的calico.yaml文件中是有发现实际真正的网卡

解决方案

/*
调整calicao 网络插件的网卡发现机制,修改IP_AUTODETECTION_METHOD对应的value值。官方提供的yaml文件中,ip识别策略(IPDETECTMETHOD)没有配置,即默认为first-found,这会导致一个网络异常的ip作为nodeIP被注册,从而影响node-to-node mesh。我们可以修改成can-reach或者interface的策略,尝试连接某一个Ready的node的IP,以此选择出正确的IP。
*/

// calico.yaml 文件添加以下二行 
env: 
    - name: IP_AUTODETECTION_METHOD  
    value: "interface=ens.*"  # ens 根据实际网卡开头配置</sub>
2.Liveness probe failed: calico/node is not ready: Felix is not live: liveness probe reporting 503

使用kubectl logs -f calico-node-mzt2l -n kube-system 查看pod日志

#输出
Full resync is required ListRoot="/calico/resources/v3/projectcalico.org/kubernetesendpointslices"
felix/watchercache.go 186: Failed to perform list of current data during resync ListRoot="/calico/resources/v3/projectcalico.org/kubernetesendpointslices" error=resource does not exist: KubernetesEndpointSlice with error: the server could not find the requested resource

解决方案

1.经过查找资料发现calico-node提示 探针无法通过,无法正常启动,可以在容器中执行探针命令,返回503。 参考calico官方文档,换成etcd后端后部署成功了。

https://docs.projectcalico.org/getting-started/kubernetes/self-managed-onprem/onpremises#install-calico-with-etcd-datastore

2.更换calico-3.10版本后解决了这个问题,全部初始化成功。
curl https://docs.projectcalico.org/v3.10/manifests/calico.yaml -O calico-3.10.yml
kubectrl apply -f calico-3.10.yml
kubectrl get pods -A

问题解决
在这里插入图片描述
参考文献:
https://github.com/opsnull/follow-me-install-kubernetes-cluster/issues/633

https://github.com/projectcalico/calico/issues/5125

https://www.cnblogs.com/dai-zhe/p/14878075.html

如有侵权,告知必删。

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐