Debian Kubernetes节点随机重新启动
我急需帮助。我注意到我的Kubernetes仆从/节点每天以随机间隔重新启动几次,我不知道为什么。这对我来说是个大问题,因为每次重新启动都会导致节点上每个应用程序大约10分钟的停机时间 当它们重新启动时,我可以看到这样的节点事件Debian Kubernetes节点随机重新启动,debian,kubernetes,google-compute-engine,reboot,Debian,Kubernetes,Google Compute Engine,Reboot,我急需帮助。我注意到我的Kubernetes仆从/节点每天以随机间隔重新启动几次,我不知道为什么。这对我来说是个大问题,因为每次重新启动都会导致节点上每个应用程序大约10分钟的停机时间 当它们重新启动时,我可以看到这样的节点事件 Events: FirstSeen LastSeen Count From SubObjectPath Type Reason
Events:
FirstSeen LastSeen Count From SubObjectPath Type Reason Message
--------- -------- ----- ---- ------------- -------- ------ -------
9m 9m 1 kubelet, kubernetes-minion-group-7j5x Normal Starting Starting kubelet.
9m 9m 1 kubelet, kubernetes-minion-group-7j5x Warning ImageGCFailed unable to find data for container /
9m 9m 2 kubelet, kubernetes-minion-group-7j5x Normal NodeHasSufficientDisk Node kubernetes-minion-group-7j5x status is now: NodeHasSufficientDisk
9m 9m 2 kubelet, kubernetes-minion-group-7j5x Normal NodeHasSufficientMemory Node kubernetes-minion-group-7j5x status is now: NodeHasSufficientMemory
9m 9m 2 kubelet, kubernetes-minion-group-7j5x Normal NodeHasNoDiskPressure Node kubernetes-minion-group-7j5x status is now: NodeHasNoDiskPressure
9m 9m 1 kubelet, kubernetes-minion-group-7j5x Warning Rebooted Node kubernetes-minion-group-7j5x has been rebooted, boot id: bed35a9d-584c-4458-8a04-49725200eb0c
9m 9m 1 kubelet, kubernetes-minion-group-7j5x Normal NodeNotReady Node kubernetes-minion-group-7j5x status is now: NodeNotReady
8m 8m 1 kubelet, kubernetes-minion-group-7j5x Normal NodeReady
当我检查节点中的重新引导历史记录时,它似乎是随机发生的
kubernetes-minion-group-7j5x:~$ last reboot
reboot system boot 3.16.0-4-amd64 Wed Dec 13 00:36 - 01:01 (00:25)
reboot system boot 3.16.0-4-amd64 Tue Dec 12 23:24 - 01:01 (01:37)
reboot system boot 3.16.0-4-amd64 Mon Dec 11 05:43 - 01:01 (1+19:18)
reboot system boot 3.16.0-4-amd64 Sun Dec 10 23:46 - 01:01 (2+01:15)
因为重启是在Kubernetes事件中,这是否意味着Kubernetes正在进行重启,或者可能是其他过程?如何对此进行故障排除?我不知道现在该如何着手调查此事
在kube controller manager.log
或kubelet.log
或syslog
或消息
或kern.log
或节点问题检测器.log
或auth.log
或无人值守升级.log
中,我似乎找不到任何东西
我正在Debian上运行Kubernetes 1.6.0
Linux kubernetes-minion-group-7j5x 3.16.0-4-amd64 #1 SMP Debian 3.16.43-2+deb8u5 (2017-09-19) x86_64 GNU/Linux
故障排除可以通过查看日志来完成,这样您就可以获得更多信息,了解是什么导致节点重新启动。重新启动时,kublet进程将重新启动,并尝试在收集第一个度量之前获取度量。这就是为什么在重新启动kublet后会看到警告错误。这通常不是问题,因为kubelet最终会重试,并且在度量集合开始后应该会成功。在kubelet重新启动后,此错误尤其明显 此错误并不意味着可能是Kubernetes问题,因为节点可能由于其他问题而重新启动。 最初的故障排除是按照以下步骤查看实例日志:
我还想指出,您没有使用最新版本的Kubernetes,升级可能有用。我不确定问题出在哪里,但在将Kubernetes节点从container-vm-v20170214映像切换到gci-stable-56-9000-84-2之后,重新启动似乎已经停止
我选择gci-stable-56-9000-84-2是因为我的kubernetes masters运行的是gci-stable-56-9000-84-2,它们看起来很稳定。我不知道为什么kubernetes 1.6.0默认情况下会对masters和nodes使用不同的映像。你在GKE中运行它吗?不,我在GCE上运行kubernetes。谢谢你的帮助!我运行了
cat/var/log/messages | egrep-I{“warning | error | restart”}
却一无所获,当我运行cat/var/log/messages | egrep-I{“warning | error | kernel | restart”}
时,我得到了大量的输出,这些输出看起来就像是常规启动的东西。在重启之前,我唯一看到的是Dec 13 10:17:14 kubernetes-minion-group-d6sv内核:[185042.033885]aufs au_选择验证:1570:docker[7014]:dirperm1通过较低分支上的权限位来破坏保护
,但始终存在大量的权限位,因此它似乎不是重新启动的原因。我在stackdriver日志中也没有看到任何明显的内容。欢迎使用。搜索该错误字符串并在命令末尾添加-C5或-C10可能会很有用,以查看更多lines在错误消息之前和之后。例如cat/var/log/messages | grep-i'docker[7014]:'-C5您还可以使用日期,类似于错误开始时显示的日期,并查看它是否返回任何有用的内容。还可以查看VM实例[serial console][1]输出:转到“Compute engine'>实例”并单击“VM实例”以查看VM实例的详细信息。向下滚动到“日志”部分并单击“串行端口1(控制台)”,您将通过这种方式获得实例的更多日志。[1]: