重新启动后,kubenetes主节点未处于就绪状态

时间:2020-02-06 07:50:32

标签: docker kubernetes

我想知道何时重新启动装有绒布的kubernetes master的ubuntu机器。重新启动之前,它工作正常。但是重新启动后,主节点未处于就绪状态。

我尝试使用describe来获取节点详细信息。

KubeletNotReady runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized

此错误记录在日志中。我对此进行了搜索,找到了一些解决方案,例如重新初始化flannel.yml,但没有用。

https://github.com/kubernetes/kubeadm/issues/1031按照此处提供的解决方案,在机器中重新安装docker。可行。 在机器上重新安装docker后,一切正常。谁能解释我为什么会这样?就像我重新启动机器一样,那么每次我需要重新安装docker时?还是我缺少其他设置或配置? 谢谢

1 个答案:

答案 0 :(得分:1)

根据提供的信息,有几个步骤和要点 遇到此类问题时应予以考虑:

第一个检查是验证10-flannel.conflist中是否没有缺少文件/etc/cni/net.d/。您应该在该文件中包含此类信息:

{
 "name": "cbr0",
 "cniVersion": "0.3.1",
 "plugins": [
   {
     "type": "flannel",
     "delegate": {
       "hairpinMode": true,
       "isDefaultGateway": true
     }
   },
   {
     "type": "portmap",
     "capabilities": {
       "portMappings": true
     }

如果您的文件放置在此处,请检查您那里是否特别有cniVersion字段。 在某些法兰绒部署中,缺少cniVersion字段。

第二次故障排除检查也是检查kubelet日志。 Kubelet可能报告未找到cni配置的一些问题。 您可以在以下位置找到日志:/var/log/kubelet.log

检查journalctl -fu kubelet的输出也很有用,看看那里是否没有发生任何错误。 在某些情况下,重新启动kubelet可能会有所帮助,您可以使用systemctl restart kubelet

如果您怀疑docker导致了问题,则可以按照检查kukubelet日志的类似方式检查docker日志 使用journalctl -ul docker。如果Docker引起一些问题,请尝试在重新安装Docker服务之前重新启动它 使用sudo systemctl restart docker.service

最后,确实值得遵循official documentation来创建kubeadm群集,尤其是荚network section。 请注意,保留所有二进制文件很重要,以防止不必要的更新。 Kubernetes在kubeadm方面也有很好的troubleshoot document

希望这会有所帮助。