无法将 sh 执行到 Kubernetes 容器中:从已关闭的文件读取,设备上没有剩余空间

无法将 sh 执行到 Kubernetes 容器中:从已关闭的文件读取,设备上没有剩余空间

我的 Kubernetes v1.16.3 集群中的一个节点最终处于一种奇怪的状态。该节点正在运行 Debian 10.1 和 Docker 19.03.1。当我尝试kubectl exec sh进入该节点上的容器时,我在节点中看到以下错误消息journalctl -u docker(第二个错误消息也是由kubectl它自己报告的):

stream copy error: reading from a closed fifo
Error running exec ... in container: failed to create runc console socket: mkdir /tmp/pty...: no space left on device ..."

此时我看不出哪个设备可能已满。简单操作df不会引发任何警报。我该如何进一步诊断和补救这种情况?

顺便说一句,到目前为止,问题仍然存在于kubectl drainsystemctl restart docker重启kube-proxy和 CNI 的 pod 以及其他一些措施中。

答案1

docker system prune正如 OP 在评论中提到的,和的组合docker rmi $(docker images -q)可以解决这一问题。

相关内容