K3s 使用 containerd 时出现 "failed to pull and unpack image" 具体排查
发布时间 - 2026-01-19 00:00:00 点击率:次镜像拉取失败不一定是containerd故障,需先用crictl验证网络、TLS证书、认证及镜像地址;再检查containerd的config.toml中私有仓库CA、registry配置和auth凭据;修改后须重启k3s或containerd,并用crictl info、ctr命令确认生效;应急可手动导入镜像并重打标签,或通过启动参数指定*。
确认镜像拉取失败是否真由 containerd 引起
先别急着改配置。K3s 默认用 containerd,但错误日志里出现 failed to pull and unpack image,不等于一定是 containerd 自身故障——它只是执行层,真正卡点往往在上游:网络、证书、认证或镜像地址本身。
最直接的验证方式是在出问题的节点上,用 crictl 模拟 kubelet 行为:
- 运行
sudo crictl pull harbor.intra.example.com/proj/app:v1.2.3(替换为你实际的镜像地址) - 如果报
x509: certificate signed by unknown authority,说明是 TLS 信任问题 - 如果报
context deadline exceeded或连接拒绝,优先查网络连通性与端口开放情况(如 Harbor 的 443/80 是否可达) - 如果提示
unauthorized: authentication required,说明需要 registry 认证,但 K3s 未配置对应 secret 或 containerd 配置未生效
检查 containerd 对私有仓库的 TLS 和认证配置
K3s 不读 Docker 的 ~/.docker/config.json,它依赖 containerd 的 config.toml。关键配置路径通常是:
-
/var/lib/rancher/k3s/agent/etc/containerd/config.toml(agent 节点) -
/var/lib/rancher/k3s/server/etc/containerd/config.toml(server 节点)
重点确认以下几项是否正确写入(需重启 containerd 或整个 k3s 才生效):
-
私有仓库 CA 证书:把 Harbor 自签名 CA 证书(如
ca.crt)拷到/var/lib/rancher/k3s/agent/etc/containerd/certs.d/harbor.intra.example.com/ca.crt(目录需手动创建) -
registry 配置块:在
config.toml的[plugins."io.containerd.grpc.v1.cri".registry]下添加对应 host 的host条目,启用skip_verify = true(仅测试环境)或指定ca路径 -
认证凭据:若需账号密码,在
hosts.toml中配置auth字段(Base64 编码后的username:password),或使用kubectl create secret docker-registry并在 Pod 中引用
验证 containerd 实际使用的配置是否加载成功
修改 config.toml 后容易忽略一步:containerd 不会热重载该文件。必须重启服务:
执行
sudo systemctl restart k3s(k3s 会一并重启内置 containerd)- 或单独重启 containerd:
sudo systemctl restart containerd(仅当 K3s 以外部 containerd 模式运行时)
验证是否生效的方法:
- 运行
sudo ctr -n k8s.io image ls | grep your-image查看本地是否有缓存镜像 - 执行
sudo crictl info | grep -A5 registry看输出中是否列出你配置的私有 registry 地址 - 查看 containerd 日志:
sudo journalctl -u k3s -n 100 --no-pager | grep -i "harbor\|pull\|cert"
绕过拉取失败的临时应急手段
生产环境不能长期卡在镜像拉取上。当排查耗时较长,可快速恢复业务:
-
手动导入镜像:在能联网的机器上
docker pull镜像 →docker save -o app.tar image:tag→ 拷贝到目标节点 →sudo ctr -n k8s.io image import app.tar -
重打标签匹配原需求:比如 K3s 默认要拉
docker.io/rancher/pause:3.6,但你已导入harbor.intra/pause:3.6,则运行:sudo ctr -n k8s.io image tag harbor.intra/pause:3.6 docker.io/rancher/pause:3.6 -
修改 K3s 启动参数跳过默认镜像拉取:通过
--pause-image或--system-default-registry指定*前缀,避免硬编码依赖外网
# word
# js
# json
# docker
# 编码
# app
# 端口
# ai
# red
# var
# default
# kubelet
# rancher
# 镜像
# 重启
# 是在
# 重打
# 为你
# 并在
# 可达
# 但你
# 急着
# 先用
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel辅助函数有哪些_Laravel Helpers常用助手函数大全
Laravel如何实现RSS订阅源功能_Laravel动态生成网站XML格式订阅内容【教程】
Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧
如何挑选最适合建站的高性能VPS主机?
Laravel怎么在Blade中安全地输出原始HTML内容
如何在橙子建站上传落地页?操作指南详解
1688铺货到淘宝怎么操作 1688一键铺货到自己店铺详细步骤
laravel服务容器和依赖注入怎么理解_laravel服务容器与依赖注入解析
如何在阿里云域名上完成建站全流程?
Laravel如何创建自定义Artisan命令?(代码示例)
网站制作企业,网站的banner和导航栏是指什么?
Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】
公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?
如何在Windows虚拟主机上快速搭建网站?
Laravel Seeder怎么填充数据_Laravel数据库填充器的使用方法与技巧
如何快速辨别茅台真假?关键步骤解析
今日头条AI怎样推荐抢票工具_今日头条AI抢票工具推荐算法与筛选【技巧】
Laravel软删除怎么实现_Laravel Eloquent SoftDeletes功能使用教程
大连网站制作公司哪家好一点,大连买房网站哪个好?
如何确保西部建站助手FTP传输的安全性?
零服务器AI建站解决方案:快速部署与云端平台低成本实践
魔毅自助建站系统:模板定制与SEO优化一键生成指南
如何在阿里云高效完成企业建站全流程?
奇安信“盘古石”团队突破 iOS 26.1 提权
Laravel的契約(Contracts)是什么_深入理解Laravel Contracts与依赖倒置
Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】
最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?
Laravel如何实现邮箱地址验证功能_Laravel邮件验证流程与配置
Laravel如何为API生成Swagger或OpenAPI文档
合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验
Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用
Python面向对象测试方法_mock解析【教程】
独立制作一个网站多少钱,建立网站需要花多少钱?
猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?
济南网站建设制作公司,室内设计网站一般都有哪些功能?
实现点击下箭头变上箭头来回切换的两种方法【推荐】
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
高端云建站费用究竟需要多少预算?
如何使用 jQuery 正确渲染 Instagram 风格的标签列表
移动端脚本框架Hammer.js
今日头条微视频如何找选题 今日头条微视频找选题技巧【指南】
开心动漫网站制作软件下载,十分开心动画为何停播?
千库网官网入口推荐 千库网设计创意平台入口
Laravel Eloquent关联是什么_Laravel模型一对一与一对多关系精讲
php增删改查怎么学_零基础入门php数据库操作必知基础【教程】
Linux后台任务运行方法_nohup与&使用技巧【技巧】
ChatGPT回答中断怎么办 引导AI继续输出完整内容的方法
企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?


