如何修复Kubernetes NodeUnderDiskPressure错误?

时间:2018-07-27 22:22:59

标签: kubernetes

创建简单的hello world部署后,我的广告连播状态显示为“待处理”。当我在Pod上运行kubectl describe pod时,我得到以下信息:

Events:
  Type     Reason            Age                From               Message
  ----     ------            ----               ----               -------
  Warning  FailedScheduling  14s (x6 over 29s)  default-scheduler  0/1 nodes are available: 1 NodeUnderDiskPressure.

如果检查节点的运行状况,我会得到:

Conditions:
  Type             Status  LastHeartbeatTime                 LastTransitionTime                Reason                       Message
  ----             ------  -----------------                 ------------------                ------                       -------
  OutOfDisk        False   Fri, 27 Jul 2018 15:17:27 -0700   Fri, 27 Jul 2018 14:13:33 -0700   KubeletHasSufficientDisk     kubelet has sufficient disk space available
  MemoryPressure   False   Fri, 27 Jul 2018 15:17:27 -0700   Fri, 27 Jul 2018 14:13:33 -0700   KubeletHasSufficientMemory   kubelet has sufficient memory available
  DiskPressure     True    Fri, 27 Jul 2018 15:17:27 -0700   Fri, 27 Jul 2018 14:13:43 -0700   KubeletHasDiskPressure       kubelet has disk pressure
  Ready            True    Fri, 27 Jul 2018 15:17:27 -0700   Fri, 27 Jul 2018 14:13:43 -0700   KubeletReady                 kubelet is posting ready status. AppArmor enabled

因此,似乎问题在于“ kubelet具有磁盘压力”,但我无法真正弄清楚这意味着什么。我无法通过SSH进入minikube并检查其磁盘空间,因为我将VMWare Workstation与--vm-driver=none一起使用。

3 个答案:

答案 0 :(得分:3)

社区提示您以上评论。将尝试巩固它。

  
    

kubelet将一个或多个驱逐信号映射到相应的节点条件。

  
     

如果已达到硬驱逐阈值或软驱逐   已达到阈值,而与其相关的宽限期无关,   kubelet报告一个条件,该条件反映出该节点位于   压力。

     
    

DiskPressure

         

任一节点的根文件系统上可用的磁盘空间和索引节点     或图像文件系统已满足驱逐阈值

  

因此,问题可能是磁盘空间不足或文件系统的inode用完了。您必须了解环境条件,然后将其应用到kubelet配置中。

由于在主机内部运行它,因此不需要SSH到minikube中: --vm-driver =无-

  

选项在主机上而不是在主机上运行Kubernetes组件   虚拟机。要求Docker使用此驱动程序,但无需管理程序。如果你   使用--vm-driver=none,请确保为docker指定一个bridge network。否则,它可能会在网络重启之间发生变化,   导致失去与群集的连接。

您可以尝试检查是否存在与上述主题相关的一些问题:

kubectl describe nodes

查看df个报告:

df -i
df -h

进一步阅读,以便您可以掌握以下主题: Configure Out Of Resource Handling-“节点条件”部分。

答案 1 :(得分:0)

这是一个古老的问题,但是我只是看到了,因为它没有任何问题,所以我将写下答案。

我遇到了这个问题,由于磁盘压力,我的pod多次被逐出,诸如dfdu之类的不同命令无济于事。

借助我在https://serverfault.com/a/994413/509898上写的答案,我发现主要问题是吊舱的日志文件,并且由于K8不支持日志轮换,它们可以增长到数百Gig。

>

有多种可用的日志轮换方法,但是我目前正在寻找K8的最佳实践,因此我无法提出任何具体的建议。

我希望这会有所帮助。

答案 2 :(得分:0)

我个人无法使用kube命令解决问题,因为...
据说这是由于防病毒(McAfee)所致。 重新安装公司认可的docker-desktop版本可以解决此问题。