failed to get imageFs info: non-existent label “docker-images

1.k8s错误日志

bash 复制代码
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
bash 复制代码
apiVersion: kubelet.config.k8s.io/v1beta1
kind: KubeletConfiguration
# 其他配置保持不变...

# --------- 新增以下配置 ---------
imageFs: /data/docker_storage  # 必须与 Docker 实际路径一致
imageGCHighThresholdPercent: 85  # 触发 GC 的磁盘使用率上限(默认 85%)
imageGCLowThresholdPercent: 80    # GC 后磁盘使用率目标值(默认 80%)
# -------------------------------

​​4.2. 重启 kubelet 服务​​

bash 复制代码
systemctl restart kubelet

​​4.3. 继续观察日志看是否还有相关报错

相关推荐
ezreal_pan3 天前
Pod 重启多场景复盘:OOM、日志阻塞、并发 map 读写导致程序崩溃
docker·k8s
cg.family4 天前
containerd 1.6.33 + nerdctl 1.7.6 + Jenkins
k8s
Ningcode_cloud6 天前
Kubernetes 弹性伸缩实验手册:从集群搭建到 HPA / VPA 自动扩缩容
云原生·k8s·prometheus
ZzzZZzzzZZZzzzz…8 天前
K8s---组件
运维·云原生·容器·kubernetes·k8s·k8s组件
张洛闻Eren8 天前
云原生k8s【第八课】: ETCD 备份与恢复
linux·运维·docker·kubernetes·k8s
张洛闻Eren9 天前
云原生k8s【第七课】:集群监控与可观测性
linux·运维·docker·云原生·容器·kubernetes·k8s
Eminem899 天前
9、k8s亲和性与污点容忍度
k8s
鹤落晴春11 天前
有状态应用 vs 无状态应用
运维·云原生·k8s
Eminem8912 天前
8、k8s nodename和nodeSelector调度pod
k8s
cg.family14 天前
K8s内部pod间的负载均衡原理
k8s