最近在做K8S集群,由3个master节点组成,使用kuboard(非常适合我这样的新手)作为图形界面。在kuboard中,报了很多controllernodeshardupdate错误。截图如下:大致意思是:更新节点时,找不到某个服务的节点。基本上在网上找了一圈,没有找到类似的问题和解决方法,所以这里总结一下。分析与解决:1.注意controller,这个关键字应该是controller-manager的管控组件,然后先看controller-manager,实际执行:kubectlgetpods-nkube-system-owidecontroller-manager累计重启已经23次了。会不会是重启找不到节点了?2.带着疑惑,接下来思考的是为什么会导致重启?执行:kubectldescribepods/kube-controller-manager-k8s-master3-nkube-system仔细阅读describe会详细记录pod的信息,还可以看到重启次数。我这里是查找上次重启时间,然后查看时间对应的日志,重启是什么原因。由于pod自动重启恢复正常,所以看不到具体的错误日志。同时,我注意到controller-manager有一个Livenesscheck,每10秒检查一次。从这里,你大概可以猜到kuboard经常报找不到更新节点的错误(有很多正常的更新节点日志输出),那频繁更新节点应该是定期的健康检查。3、接下来如果想看具体的日志,执行:kubectllogs-fkube-controller-manager-k8s-master3-nkube-system--tail100不过这是重启后的日志,截取一些更新节点错误的日志,我真的没有看到问题是什么。问题可能是apiserver接口请求超时。这个日志看着真费劲,没有日志级别,而且怎么查看上次重启的日志?没办法继续往下查。4.然后我看后面几个节点是不是都报这个错,无意中发现有一个节点没有报这个错。比较节点的系统版本和内核。发现系统版本为:centos7.7,内核版本为4.4。然后查看报错节点系统版本:7.3内核版本:4.4。搜索了kuboard文档,推荐使用centos7.6以上版本。所以删除节点,更新系统版本到最新的7.8(注意更新系统版本后,系统内核默认3.10,再升级内核到4.4,不然会出现一些问题,坑也比较多)。ErrorupdatingEndpointupdatenode错误暂时没有了,这个更新错误是系统内核问题导致的。综上所述,建议将K8S系统版本升级到7.6以上。当然内核版本也推荐到4.4。实在看不出重启日志是怎么回事。如果有同学,请讨论并提出您的问题。后面遇到问题会陆续总结分享。谢谢~
