872.【kubernetes】如何找到k8s内部拉取的镜像

2023-12-03  本文已影响0人  七镜

一、背景

  1. 最近在第三方部署k8s集群,部分镜像是私有的,又不想重新在第三方搭建私有仓库,于是采取将私有镜像迁移到第三方服务器的方式(nerdctl save 命令)。
  2. k8s pod 内的镜像策略设置为:IfNotPresent,即没有的话,才去拉取。
  3. 结果明明本地有镜像了,k8s还是去下载,这岂不是犟嘛

二、解决方案

  1. 执行 nerdctl namespace 找到k8s镜像的命名空间
[root@xxxxx containerd]# nerdctl namespace ls
NAME           CONTAINERS    IMAGES    VOLUMES    LABELS
buildkit       0             0         0              
default        5             12        0              
k8s.io         20            24        0              
kube-system    0             2         0 

可以看到,有个叫k8s.io 的命名空间,于是问题迎刃而解,将私有镜像传到这个命名空间中即可。

  1. 执行 nerdctl load -i xxxxxx.tar --namespace k8s.io 将镜像上传到指定的命名空间中。
  2. 完事之后,k8s就不会再去拉取镜像了,因为它已经发现自己所在命名空间已经存在镜像了。
上一篇下一篇

猜你喜欢

热点阅读