记录一次KubeSphere集群Calico组件报错
Posted 云烟旧梦
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了记录一次KubeSphere集群Calico组件报错相关的知识,希望对你有一定的参考价值。
我在使用kubesphere登录的时候,发现登录不上去,kubesphere报API错误,大量api相关组件down掉。
发现登陆的时候报如下错误:
根据经验,怀疑是calico网络组件的问题,查看发现:
Calico状态是0/1,describe查看一下详细信息,发现如下错误:
Warning Unhealthy 8s kubelet Readiness probe failed: 2022-06-25 08:09:08.567 [INFO][251] confd/health.go 180: Number of node(s) with BGP peering established = 0
calico/node is not ready: BIRD is not ready: BGP not established with 192.168.1.50,192.168.1.51
原因分析:
原因是节点网卡比较多,calico选择了错误的网卡,所以我们指定一下网卡即可。
解决手段:
指定他要去的目的网卡即可解决。
方法一:
[root@k8s-master01 ~]# kubectl set env daemonset/calico-node -n kube-system IP_AUTODETECTION_METHOD=interface=ens192
daemonset.apps/calico-node env updated
恢复正常。
这里也可以使用通配符:
[root@k8s-master01 ~]# kubectl set env daemonset/calico-node -n kube-system IP_AUTODETECTION_METHOD=interface=ens*
daemonset.apps/calico-node env updated
方法二:
修改calico.yaml配置文件,apply加载生效。
起不来的组件名称是calico-node,找到calico.yaml指定配置位置,添加相应配置生效。
找到对应yaml位置:
在主容器下添加如下环境变量,这里也可以使用通配符。
- name: IP_AUTODETECTION_METHOD
value: "interface=ens192"
[root@k8s-master01 ~]# kubectl apply -f calico.yaml
[root@k8s-master01 ~]# kubectl get pods -n kube-system
解决!
等待2分钟左右,kubesphere组件恢复。Kubesphere业务正常:
以上是关于记录一次KubeSphere集群Calico组件报错的主要内容,如果未能解决你的问题,请参考以下文章
基于containerd搭建的K8S集群calico与coredns组件一直处于pending状态
(九)从零开始搭建k8s集群——使用KubeSphere管理平台搭建流控组件sentinel服务端