Kubernetes ImagePullBackOff 是由于设备上没有剩余空间而导致的

Kubernetes ImagePullBackOff 是由于设备上没有剩余空间而导致的

我的 Kubernetes 测试集群出现了这个奇怪的错误。我正在运行 Kubernetes 1.7.0 和 dockerDocker version 1.12.6, build 78d1802

我有一个单独的卷,它已挂载为该卷/dockerdata并与其建立符号链接/var/lib/docker。我的系统卷和 dockerdata 卷上都有足够的可用空间(超过 50% 的可用空间)。我仍然收到来自 kubernetes 的 ImagePullBackOff 错误,详细错误如下:

Failed to pull image "<redacted>": rpc error: code = 2 desc = failed to register layer: ApplyLayer exit status 1 stdout: stderr: open /usr/share/man/es/man1/fakeroot-sysv.1.gz: no space left on device.

如果我通过删除陈旧的图像来手动清理,我可以解决这个问题,但据我所知,我不应该这样做 - 因为我的卷都没有接近满容量(我猜这也是为什么 Kubernetes GC 无法启动的原因)。

我猜我可能对 Docker 与本地磁盘的工作方式有些不明白,但我很困惑。任何指点都值得赞赏。

这里还有一些信息:符号链接信息:

file /var/lib/docker /var/lib/docker: symbolic link to /dockerdata

df Filesystem 1K-blocks Used Available Use% Mounted on udev 2014736 0 2014736 0% /dev tmpfs 404520 44628 359892 12% /run /dev/xvda1 20263528 4121240 16125904 21% / tmpfs 2022600 0 2022600 0% /dev/shm tmpfs 5120 0 5120 0% /run/lock tmpfs 2022600 0 2022600 0% /sys/fs/cgroup /dev/xvdb 51475068 18385324 30451920 38% /dockerdata tmpfs 404520 0 404520 0% /run/user/1000

lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 16.04.2 LTS Release: 16.04 Codename: xenial

答案1

您可以尝试以下操作: ls -lah ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2

然后尝试删除此文件,不会影响任何容器。

相关内容