我想知道何时重新启动装有绒布的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时?还是我缺少其他设置或配置? 谢谢
答案 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。
希望这会有所帮助。