failed to get imageFs info: non-existent label "docker-images
1.k8s错误日志
ImageGCFailed: failed to get imageFs info: non-existent label "docker-images"
2.触发场景:
Kubelet 执行镜像垃圾回收(GC)时,无法通过文件系统标签 docker-images 自动识别容器镜像存储路径。
3.错误原因
- 文件系统标签缺失:
Kubernetes 默认期望容器运行时(如 Docker/containerd)的存储设备带有标签 docker-images,用于自动发现镜像存储路径。若标签未配置,kubelet 无法定位镜像存储路径。 - 路径未显式指定:
未在 kubelet 配置中手动指定 imageFs(镜像存储路径),导致依赖标签检测逻辑失败。 - 默认存储路径修改:Docker: /var/lib/docker、containerd: /var/lib/containerd
- 修改了Docker/containerd默认储存路径,我这边就是这样的原因,我将docker默认存储路径修改为:/data/docker_storage
4.完整解决方案
4.1. 修改 kubelet 配置文件
- 新增配置,配置文件路径:/var/lib/kubelet/config.yaml
apiVersion: kubelet.config.k8s.io/v1beta1
kind: KubeletConfiguration
# 其他配置保持不变...
# --------- 新增以下配置 ---------
imageFs: /data/docker_storage # 必须与 Docker 实际路径一致
imageGCHighThresholdPercent: 85 # 触发 GC 的磁盘使用率上限(默认 85%)
imageGCLowThresholdPercent: 80 # GC 后磁盘使用率目标值(默认 80%)
# -------------------------------
4.2. 重启 kubelet 服务
systemctl restart kubelet
4.3. 继续观察日志看是否还有相关报错

浙公网安备 33010602011771号