k8s 使用本地镜像技巧

很多时候搭建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
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值