创建简单的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
一起使用。
答案 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多次被逐出,诸如df
或du
之类的不同命令无济于事。
借助我在https://serverfault.com/a/994413/509898上写的答案,我发现主要问题是吊舱的日志文件,并且由于K8不支持日志轮换,它们可以增长到数百Gig。
>有多种可用的日志轮换方法,但是我目前正在寻找K8的最佳实践,因此我无法提出任何具体的建议。
我希望这会有所帮助。
答案 2 :(得分:0)
我个人无法使用kube命令解决问题,因为...
据说这是由于防病毒(McAfee)所致。
重新安装公司认可的docker-desktop版本可以解决此问题。