设备上没有剩余空间,这是意外的。 Kubernetes 集群中卷的 MountVolume.SetUp 失败
·
回答问题
今天我的 kubernetes 集群(v1.15.2)节点磁盘已满并导致 pod 给出以下提示:
Update plugin resources failed due to failed to write checkpoint file "kubelet_internal_checkpoint": write /var/lib/kubelet/device-plugins/.261578065: no space left on device, which is unexpected.
MountVolume.SetUp failed for volume "default-token-xnrwt" : mkdir /opt/k8s/k8s/kubelet/pods/67eaa71b-adf4-4365-a1c7-42045d5e9426: no space left on device
我登录到服务器,发现磁盘使用率是 100%,所以我删除了一些日志文件并释放 10GB + 磁盘空间,但现在似乎 pod 没有自动恢复并且仍然有这个错误提示:

我应该怎么做才能解决这个问题?我正在尝试重新启动所有 pod,并且所有 pod 都可以正常工作。但最后我发现错误提示消息仍然给我提示没有空间并且没有自动消失。我检查了节点状态,发现节点没有磁盘压力。如何让错误提示消失?
Answers
在评论部分提到了将此Community Wiki作为解决方案发布。
当您的应用程序使用 100% 的可用空间时,会出现no space left on device, which is unexpected.和no space left on device之类的错误。您可以使用命令$ df -h进行检查。
解决方案
要解决此类问题,您必须在volume中“腾出一些空间”。您可以通过手动删除文件来做到这一点(OP 在这种情况下做到了)。
一旦你腾出一些空间,你应该使用$ systemctl restart kubelet重新启动kubelet。
上述步骤解决了 OPs 问题。
此外,在某些特定场景下,您还可以使用$ service docker restart或特定资源重新启动 docker 服务。
更多推荐



所有评论(0)