“ Kubelet停止发布节点状态”并且无法访问节点

时间:2020-09-05 22:26:06

标签: amazon-web-services kubernetes

我在一个相对较新的群集中遇到了一些问题,其中几个节点(总是成对出现,但可能只是一个巧合)将变为“未就绪”,并且kubectl describe表示Kubelet停止发布节点状态用于内存,磁盘,PID和就绪。

所有正在运行的Pod都卡在了Termination中(可以使用k9s连接到集群并看到此消息),而我发现的唯一解决方案是封锁并耗尽节点。几个小时后,似乎已删除它们并创建了新的。或者,我可以使用kubectl删除它们。

通过ssh(超时)完全无法访问它们,但是AWS报告EC2实例没有问题。

在过去的一周里,这已经发生了三遍。一切都可以恢复,但是显然存在一些问题,我想深入了解它。

如果我根本无法上箱,我该如何去发现发生了什么? (实际上我只是想为卷拍摄快照并挂载它,因此如果再次发生,将尝试这样做,但是欢迎其他建议)

运行kubernetes v1.18.8

2 个答案:

答案 0 :(得分:0)

这里有两种最常见的可能性,这两种可能性很可能是大负载造成的:

    kubelet主机上的
  • Out of Memory错误。可以通过在--kubelet-extra-args中添加适当的BootstrapArguments来解决。例如:--kubelet-extra-args "--kube-reserved memory=0.3Gi,ephemeral-storage=1Gi --system-reserved memory=0.2Gi,ephemeral-storage=1Gi --eviction-hard memory.available<200Mi,nodefs.available<10%"

  • 一个here解释的问题:

kubelet有时无法修补其节点状态,例如超过250个 资源保留在节点上,kubelet无法观看超过250个流 与kube-apiserver同时使用。所以,我只是调整k​​ube-apiserver --http2-max-streams-per-connection到1000以减轻痛苦。

您可以调整上面提供的值,也可以尝试找出造成高负载/峰值的原因并尝试将其调低。

答案 1 :(得分:0)

答案是iops的问题,这是因为du命令来自-我想-cadvisor。从那时起,我已移至io1盒并具有稳定性,因此将其标记为已关闭,并将ec2实例类型的标记为分辨率

感谢您的帮助!

相关问题