k8s 使用本地镜像技巧
一般来说配置为ifnotpresent或者never就可以使用,但有时依然不成功,还会向镜像仓库拉取。很多时候搭建k8s应用时都需要使用二次创作的镜像,但镜像build完成后保存在本地(docker image ls可以查看),此时如果要在k8s yml中使用该镜像,一般yml中无镜像拉取策略或者配置。一般使用者会使用docker image ls查看本地镜像,这只是表示docker引擎本地存在该
·
很多时候搭建k8s应用时都需要使用二次创作的镜像,但镜像build完成后保存在本地(docker image ls可以查看),此时如果要在k8s yml中使用该镜像,一般yml中无镜像拉取策略或者配置
imagePullPolicy: Always
是默认从镜像仓库(公有或者私有),中拉取,
imagePullPolicy: IfNotPresent
本地没有才会向镜像仓库拉取
imagePullPolicy: Never
只会使用本地镜像
一般来说配置为ifnotpresent或者never就可以使用,但有时依然不成功,还会向镜像仓库拉取。这个原因可能是跟当前k8s集群使用的cri是docker还是containerd有关,查看方法可以根据
kubectl get node -o wide
查看最后一行使用的CONTAINER-RUNTIME来确认。
一般使用者会使用docker image ls查看本地镜像,这只是表示docker引擎本地存在该镜像,不代表containerd本地也有,使用crictl images查看,如果没有,可以使用
docker save -o ${image_name}.tar ${image_name}:tag
然后使用ctr指令上传到containerd仓库
ctr -n=k8s.io i import ${image_name}.tar
然后yml就可以使用本地镜像了。
更多推荐
已为社区贡献2条内容
所有评论(0)