文章

k8s拉取镜像策略

镜像拉取策略

img

含义
Always每次启动容器时都尝试拉取镜像(忽略本地缓存)。
IfNotPresent如果本地已有该镜像,重启 Pod 时则不拉取;否则拉取。
Never只使用本地镜像,绝不拉取。

问题

配置IfNotPresent, 但是出现偶尔更新镜像后,重启 Pod,代码却更新

  1. ✅ 原因 1:Pod 被调度到了新节点(或清理过镜像的节点)
    • 节点 A 有旧镜像 → 用本地缓存
    • 节点 B 没有镜像 → 拉取最新版本
    • 如果你节点偶尔自动清理镜像(如 kubelet 的镜像回收机制),也可能触发拉取
  2. ✅ 原因 2:镜像被手动清理了
    • 有人跑了 docker image prunecrictl rmi
    • 导致节点本地镜像被删,下次重启 Pod 时重新拉取

© 2024- lfj