You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用k3s+外部containerd时同ID镜像重复问题求助

使用K3s+外部Containerd时镜像重复(无标签镜像冗余)问题排查与解决

问题描述

在使用K3s搭配外部Containerd时,所有镜像均出现重复现象,涵盖三类场景:

  • K3s自动拉取的镜像(如kube-system命名空间下的相关镜像)
  • 通过CLI本地构建的镜像(使用Docker/Nerdctl兼容模式)
  • 通过CLI从Docker Hub及私有镜像仓库手动拉取的镜像

重复生成的镜像均为无标签状态。目前该问题未影响业务运行,但会导致镜像列表混乱:手动删除镜像时必须添加--force参数否则报错,同时存在磁盘空间浪费的隐患。

此前未出现该问题,尝试搜索相关内容未找到对应案例,升级/回退组件版本也无改善,需排查是否为配置错误及解决方法。

组件版本

  • crun: 1.8.4
  • containerd: 1.6.21
  • nerdctl: 1.3.1
  • k3s: v1.24.12+k3s1(非无根模式,未启用apparmor/selinux)
  • buildkit: 0.11.6

系统环境:Ubuntu 22.04.2 LTS
Linux ubuntu 5.15.0-73-generic #80-Ubuntu SMP Mon May 15 15:18:26 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

已尝试方案

  • 调整各组件版本
  • 在containerd/docker/k3s仓库及论坛搜索相关内容
  • 在新虚拟机中重新搭建环境

排查与解决步骤

1. 校验Containerd与K3s的镜像存储配置一致性

K3s默认使用内部Containerd,指定外部Containerd时,需确保两者镜像存储配置完全对齐,否则会导致镜像元数据重复:

  • 查看K3s的Containerd配置:cat /var/lib/rancher/k3s/agent/etc/containerd/config.toml
  • 查看外部Containerd的配置:cat /etc/containerd/config.toml
    重点核对以下字段:
    • root:镜像存储根目录,需确保两者指向同一路径(若K3s复用外部Containerd,应配置K3s使用外部Containerd的root路径)
    • plugin."io.containerd.grpc.v1.cri".registry:镜像仓库配置,避免重复拉取源导致元数据冗余

2. 确认Nerdctl与K3s的Containerd Socket连接一致

若K3s未正确复用外部Containerd的Socket,会导致Nerdctl和K3s各自维护镜像元数据:

  • 查看Nerdctl使用的Socket路径:nerdctl info | grep "Containerd Socket"
  • 检查K3s启动参数:确认是否添加--containerd-endpoint指定外部Containerd的Socket(如/run/containerd/containerd.sock)

3. 清理冗余镜像元数据

若配置无误,可手动清理无标签的冗余镜像:

  • 使用Containerd命令清理:ctr images prune -a(注意:该命令会删除所有未被容器使用的镜像,执行前需确认业务容器稳定运行)
  • 使用Nerdctl命令清理:nerdctl image prune -a

4. 验证镜像拉取/构建流程

  • 拉取测试镜像:nerdctl pull nginx:alpine,执行nerdctl images查看列表,确认无重复无标签镜像
  • 本地构建测试镜像:创建简单Dockerfile后执行nerdctl build -t test:v1 .,查看镜像列表确认无冗余

5. 检查Buildkit的Containerd连接配置

使用Buildkit构建镜像时,需确保其连接的是与K3s相同的Containerd实例:

  • 查看Buildkit容器挂载配置:nerdctl inspect buildkitd,确认挂载了正确的Containerd Socket和存储目录

预期结果

构建或拉取镜像时,不再生成同ID、同大小的重复镜像(无标签状态镜像不再出现)。

内容的提问来源于stack exchange,提问作者anvouk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 20:50:29