【问题标题】:Kubernetes: Node NotReadyKubernetes:节点未就绪
【发布时间】:2021-01-21 12:05:27
【问题描述】:

我是这个论坛的新手,对 Kubernetes 也很陌生。但是,我遇到了 GKE 集群的问题 - 一个节点的状态正在切换到 NotReady 很多。在过去的两周里,它可能每天至少发生一次。最大的问题是它发生在我真正需要它工作的白天(我的网站出现故障)。当我重新启动它时,一切都会再次恢复正常,但这通常需要 20 分钟,而且我没有时间(或不会)每天都这样做。

查看节点的日志时,我可以看到当节点将其状态更改为NotReady 时,这三个消息将始终出现在其中的模式:

2020-10-06T07:58:03.782923Z curl: (28) Operation timed out after 10001 milliseconds with 0 bytes received
2020-10-06T07:58:03.782923Z Kubelet is unhealthy!
2020-10-06T07:58:21Z Node gke-cluster-default-pool-d02df301-cyfr status is now: NodeNotReady

有没有人知道我可以做些什么来解决或至少解决这个问题?

最好的问候,埃里克

【问题讨论】:

  • 您好。好的,kubernetes 并不是真正的微不足道的技术。第一个问题:如果你需要它工作,为什么不从一个足够强大的虚拟机开始,或者在你掌握了切换选项的同时尝试kubernetes?错误消息通常与 wordpress 插件问题有关。你到底在运行什么工作负载,你是如何部署它的?您是否为您的工作负载配备了负载均衡器和运行状况检查?会不会是插件中的错误会触发运行状况检查变得不健康?
  • 你好。要充分了解您所处的情况,请提供您遵循的步骤(指南、链接等)。请详细说明您的GKE 集群(版本、您拥有多少个节点等)。另外,还有官方文档关于故障排除GKE:cloud.google.com/kubernetes-engine/docs/troubleshooting.

标签: kubernetes google-kubernetes-engine kubelet


【解决方案1】:

节点NotReady 的发生可能有几个原因,例如:

  • 内存不足:可能达到或超过阈值
  • 磁盘压力:可能达到或超过阈值
  • 网络问题:这是由网络插件设置的

请参考this的回答进行调试。 除了以上内容,还请查看kubectl get events --all-namespaces

根据您提供的 ATM 小日志,似乎有一些 kubelet 试图执行但无法执行的操作,它正在设置 NotReady 状态。

请收集更多日志并发布到问题中,这将有助于找出 kubelet 未能执行的操作。如果它恰好是一个 wordpress 应用程序(托管在 kubernetes 上)问题,那么这个link 可能会有所帮助

【讨论】:

    【解决方案2】:

    谢谢大家的建议。

    我与一位对 Kubernetes 世界了解更多的朋友进行了交谈。他建议我购买更强大的虚拟机,因此我将内存从 1.7 GB 升级到 3.5 GB。升级至今,我还没有遇到过感觉很棒的 Note NotReady 问题。

    我认为一个选项可能是限制集群服务的资源,以确保 Kubelet 始终拥有所需的资源。那么也许有可能回到更便宜、功能更弱的机器类型。

    /埃里克

    【讨论】:

    猜你喜欢
    • 2018-06-03
    • 2019-06-02
    • 1970-01-01
    • 2020-12-01
    • 2018-04-16
    • 2021-06-07
    • 2018-11-18
    • 1970-01-01
    • 2019-07-22
    相关资源
    最近更新 更多