一次calico问题排查

  1. k8s集群出现一台主机calico重启,无法重新添加路由
  2. 当时查看了下kubelet的日志,发现有报错证书无效,查看了集群内其它环境主机,路由都正常,按理说不应该是证书无效才对
  3. 开始看下calico的日志,发现有报Liveness probe failed: calico/node is not ready: bird/confd is not live: exit status 1 /BIRD is not ready: Error querying BIRD: unable to connect to BIRDv4 socket:
    怀疑可能是calico无法发现网卡导致,查看了下calico配置发现网卡配置正确,重启了下网卡,发现还会报上面报错,看来不是网卡问题
  4. 查看apiserver的日志,发现如下报错:
    在这里插入图片描述
    发现api的clusterip有问题,报大量500的错,这个时候k get ep 发现endpoint 显示的主机ip不是当台主机master的IP端口是1180,问题就找到了,先试着重启master
    然后 k get ep 发现endpoint 显示的主机ip是当台主机masterIP ,但是端口还是不对,还是1180,集群开启https,正常是6443才对,这个时候有租户报服务无法创建和访问
    查看结果所有calico都挂了,而且都报证书无效,重启master,再看下发现endpoint 又显示的主机ip不是当台主机master的IP端口是1180,真的见鬼了,然后问下同事
    他们两个集群用了同一组etcd(这个是真的坑),然后到etcd查看数据结果果然如此,如下图:
    在这里插入图片描述
    查看了三台的etcd k/v 值,发现有一台etcd是保存另一个集群的master IP 然后将其删除:

[root@xxxx ~]# ETCDCTL_API=3 etcdctl --endpoints=http://xxxxx:1159 del “/registry/services/endpoints/default/kubernetes”
1

这个时候查看kubernetes的ep发现正常了:
[root@xxxxx kubernetes]# k get ep
NAME ENDPOINTS AGE
kubernetes xxxxxx:6443 54m
但是后台加证书去get po 操作获取不到结果,不用证书就可以,这就奇怪了,后来查看apiserver的配置文件,就发现配置端口采用参数不对
在这里插入图片描述
注:• HTTP服务
• 默认端口8080,修改标识–insecure-port
• 默认端口6443,修改标识—secure-port
将配置文件改动如下:
在这里插入图片描述
重启master,发现加证书可以正常访问,calico也能正常恢复,到此问题解决

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值