【发布时间】:2021-04-06 10:10:05
【问题描述】:
我在 kubelet 删除 docker 镜像时遇到问题,因为它认为磁盘已满:
Dec 29 18:00:14 hostname kubelet: I1229 18:00:14.548513 13836 image_gc_manager.go:300] [imageGCManager]: Disk usage on image filesystem is at 85% which is over the high threshold (85%). Trying to free 2160300032 bytes down to the low threshold (80%).
但是,docker使用的分区是1TB,空间充足:
$ docker info
...
Docker Root Dir: /scratch/docker
$ df -k /scratch
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 976283900 234476968 741806932 25% /scratch
似乎 kubelet 正在查找我在 / 上的主分区的磁盘使用情况,这也恰好是 kubelet 本身安装的分区:
$ df -k /
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/nvme0n1p2 52403200 44032936 8370264 85% /
那么 kubelet 从哪里获取有关可用磁盘空间的信息?我以为它正在使用 docker 守护程序,但根据我所看到的这两个应用程序正在查看不同的分区。有没有我可以设置的配置,还是在进行磁盘空间检查时默认为自己的分区?
这是在 RedHat 7 和 docker 18.06 上使用 Kubernetes 1.17.4。
【问题讨论】:
标签: docker kubernetes kubelet