我迫切需要帮助。我注意到我的Kubernetes仆从/节点正在以每天几次的随机间隔重新启动,我无法弄清楚原因。这对我来说是个大问题,因为每次重启都会导致节点上每个应用程序停机大约10分钟。
当他们重新启动时,我可以看到像这样的节点事件
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
或messages
或kern.log
或{{1}中找到任何内容}或node-problem-detector.log
或auth.log
。
我在Debian上运行Kubernetes 1.6.0
unattended-upgrades.log
答案 0 :(得分:1)
可以通过查看日志来完成故障排除,以便您可以获得更多信息以查看使节点重新启动的内容。当重新启动时,kublet进程重新启动,并且在收集第一个指标之前尝试获取指标。这就是重启kublet后看到警告错误的原因。这通常不是问题,因为kubelet最终会重试,并且一旦度量标准收集开始就应该成功。在kubelet重新启动后,此错误尤为明显。
此错误并不意味着它可能是Kubernetes问题,因为节点可能由于其他问题而重新启动。 最初的故障排除是根据documentation:
查看实例日志您还可以connect to the cluster查看/ var / log / messages文件以获取任何错误指示。您可以使用类似于以下的命令,查看实例重新启动时是否有任何错误:
cat / var / log / messages | egrep -i {“警告|错误|内核|重启”}
您还可以在'less / var / log / messages'中使用less,并使用'/'搜索节点重新启动的日期和时间。
另请查看VM实例serial console输出:
转到“计算引擎”>实例并单击“VM实例”以查看VM实例详细信息。 向下滚动到“Logs”部分,然后单击“Serial port 1(console)”。 您将通过这种方式获得更多日志。
我还想指出您没有使用最新版本的Kubernetes,升级可能会有用。
答案 1 :(得分:0)
我不确定问题是什么,但在将kubernetes节点从container-vm-v20170214映像切换到gci-stable-56-9000-84-2之后,重启似乎已停止。
我选择了gci-stable-56-9000-84-2,因为那是我的kubernetes大师们正在运行的,他们似乎很稳定。我不确定为什么Kubernetes 1.6.0默认使用不同的图像作为母版和节点。