拉取不到pause镜像处理
AI-摘要
KunKunYu GPT
AI初始化中...
介绍自己
生成本文简介
推荐相关文章
前往主页
前往tianli博客
拉取不到pause镜像处理
pause镜像处理
1 由于k8s.gcr.io 需要连外网才可以拉取到,导致 k8s 的基础容器 pause 经常无法获取。k8s docker 可使用代理服拉取,再利用 docker tag 解决问题
docker pull mirrorgooglecontainers/pause:3.1
docker tag mirrorgooglecontainers/pause:3.1 k8s.gcr.io/pause:3.1
但是我们k8s集群中使用的CRI是containerd。所以只能通过 docker tag 镜像,再使用 ctr 导入镜像.
docker save k8s.gcr.io/pause -o pause.tar
ctr -n k8s.io images import pause.tar
2 containerd和docker在导入镜像这块是存在一切区别的:
containerd 命令行工具ctr特性不如 docker 丰富,如 ctr 1.2 并没有 tag 子命令,直到 1.3 才有
为支持多租户隔离,containerd 有 namespace 概念,不同 namespace 下的 image、container 均不同,直接使用 ctr 操作时,会使用 default namespace
由于我刚开始导入镜像的时候,没有指定namespace,pause导入到了default空间,导致pod一直处在ContainerCreating状态。
后来在网上找了很多资料才知道containerd有namespace这回事,才知道了 k8s 只会使用 k8s.io namespace 中镜像。于是再往 k8s.io 导入镜像,containerd worker 终于能正常被调度了
$ ctr namespace ls
NAME LABELS
default
k8s.io
$ ctr -n k8s.io images import pause.tar
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
作者编辑不易,如有转载请注明出处。完整转载来自https://wangairui.com 网站名称:猫扑linux
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果