k8s主站进入未就绪状态

问题描述

我已在master上重新启动kubelet,此后k8s master进入“未就绪”状态。 请在describe中找到以下事件。

Conditions:
  Type                 Status    LastHeartbeatTime                 LastTransitionTime                Reason              Message
  ----                 ------    -----------------                 ------------------                ------              -------
  NetworkUnavailable   False     Fri,23 Oct 2020 12:51:36 +0530   Fri,23 Oct 2020 12:51:36 +0530   FlannelIsUp         Flannel is running on this node
  MemoryPressure       Unknown   Wed,04 Nov 2020 11:30:18 +0530   Wed,04 Nov 2020 11:34:50 +0530   NodeStatusUnknown   Kubelet stopped posting node status.
  DiskPressure         Unknown   Wed,04 Nov 2020 11:34:50 +0530   NodeStatusUnknown   Kubelet stopped posting node status.
  PIDPressure          Unknown   Wed,04 Nov 2020 11:34:50 +0530   NodeStatusUnknown   Kubelet stopped posting node status.
  Ready                Unknown   Wed,04 Nov 2020 11:34:50 +0530   NodeStatusUnknown   Kubelet stopped posting node status.

我该如何解决此问题。

解决方法

这里没什么可看的。

  1. 最好检查一下kubelet日志(如Arghya在他的评论中建议的那样)。您可以ping节点IP以查看其是否启动。如果启动,则可以SSH进入节点并使用以下命令检查kubelet日志:

# journalctl -u kubelet

  1. 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%"

  1. here解释了一个问题:

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

  1. 如果该节点无响应(无法通过ssh进入该节点),则可以尝试重新启动该节点以清除Not Ready状态。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...