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

将Docker镜像导入containerd后,K8s无法拉取镜像问题排查

问题原因与解决方案

核心问题:Containerd命名空间不匹配

ctr工具默认操作default命名空间,但Kubernetes的containerd运行时使用的是k8s.io命名空间。你通过ctr images import导入的镜像仅存在于default命名空间,K8s无法在自身使用的命名空间中找到该镜像,因此会触发拉取操作。

验证方法

执行命令查看k8s.io命名空间下的镜像列表:

ctr -n k8s.io images list

此时不会看到docker.io/library/flaskapp:v1镜像。

修复步骤

  • 方案一:直接将镜像导入到k8s.io命名空间
ctr -n k8s.io images import flaskapp.tar
  • 方案二:将default命名空间的镜像复制到k8s.io命名空间
ctr images tag docker.io/library/flaskapp:v1 docker.io/library/flaskapp:v1 -n default -t k8s.io

额外检查项

  • 确保Deployment YAML中的镜像名称与导入的镜像完全一致(K8s会自动补全docker.io/library前缀,但显式写全可避免解析问题)
  • 确认imagePullPolicy已正确设置为IfNotPresent,若为Always,K8s仍会尝试远程拉取

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 10:40:57