K8S集群问题一-kuboard中controller节点分片更新报错

最近在弄K8S集群,3个master节点组成,使用的kuboard(很适合我这种小白)作为图形界面。在kuboard中看到很多controller节点分片更新报错。截图如下:

image.png

大致意思就是:更新节点时某个服务的节点找不到了。网上基本找了一圈也没找到类似问题和解决办法,这里总结下。

分析解决:

1.请注意controller,这个关键字,应该是controller-manager这个管理控制组件,那就先看下controller-manager,执行:

kubectl get pods -n kube-system -o wide

K8S集群问题一-kuboard中controller节点分片更新报错_第1张图片

controller-manager居然累计重启已经23次了,会不会是因为重启导致找不到节点呢?
2.带着疑问,那接下来想的是为何导致重启呢?执行:

kubectl describe pods/kube-controller-manager-k8s-master3 -n kube-system

K8S集群问题一-kuboard中controller节点分片更新报错_第2张图片

仔细看了遍describe会详细记录关于pod的信息,也能看到重启次数,我这里是想找下最后一次重启时间,然后再去看下对应时间的日志,到底是什么原因重启。由于pod自动重启恢复正常看不到具体错误日志。同时,注意到controller-manager是有Liveness存活检查的,每10S检查一次,到这里大概能猜测到kuboard里面经常报更新节点找不到的错误了(还有很多正常的更新节点日志输出),那个频繁更新节点,应该就是定时健康检查。

3.那接下来想看具体日志,执行:

kubectl logs -f kube-controller-manager-k8s-master3 -n kube-system --tail 100

K8S集群问题一-kuboard中controller节点分片更新报错_第3张图片

可是这已经是重启后的日志,截取部分更新节点报错的日志,我是真没看出到底是啥问题,要说问题可能是apiserver接口请求超时。这个日志看起来真费劲,日志级别也没有,而且上次重启日志我该如何查看呢?到这里没办法继续往下排查了。

4.然后再看了下几个节点,是不是都有这个报错,无意中发现其中一个节点并没有报这个错误。对比下该节点的系统版本和内核。发现系统版本为:centos 7.7 ,内核版本为4.4 .再看报错节点系统版本为:7.3 内核版本:4.4。去搜了下kuboard文档,推荐用centos7.6以上。于是删除节点,更新系统版本到最新7.8(注意更新系统版本后,系统内核是默认的3.10,再升级下内核到4.4。否则还会遇到一些问题,坑比较多)。Error updating Endpoint 更新节点报错暂时没有了,就这样因为系统内核问题导致这个更新报错。

总结

K8S系统版本推荐升级到7.6以上,内核版本当然也是推荐4.4.
对于重启的日志我真没看出来到底怎么回事,如果有同学遇到欢迎讨论提出你的问题。
后续遇到问题再陆续总结分享,谢谢大家~

你可能感兴趣的:(linux,centos,docker)