我这里使用的1.24的k8s,crictl没有提供 save 和 load 命令

containerd经常有些镜像拉不下,这里使用docker拉取导出,ctr导入到k8s.io命名空间

ctr 是 containerd 自带的工具,有命名空间的概念。Kubernetes 下使用的 containerd 默认命名空间是 k8s.io。所以在导入镜像时需要指定命令空间为 k8s.io,否则使用 crictl images 无法查询到。

docker pull docker.io/calico/kube-controllers:v3.26.1
#docker拉取镜像

docker save -o kube-controllers.tar docker.io/calico/kube-controllers:v3.26.1
#docker导出镜像

ctr -n k8s.io  image import kube-controllers.tar docker.io/calico/kube-controllers:v3.26.1
#ctr导入镜像

crictl image
#查看镜像是否导入成功

kubectl get pod -A -o wide
#查看pod是否运行

sudo scp kube-controllers.tar k8s@node1:/home/k8s
#把docker导出的包传到其它节点
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐