k8s拉取镜像策略
镜像拉取策略
| 值 | 含义 |
|---|---|
Always | 每次启动容器时都尝试拉取镜像(忽略本地缓存)。 |
IfNotPresent | 如果本地已有该镜像,重启 Pod 时则不拉取;否则拉取。 |
Never | 只使用本地镜像,绝不拉取。 |
问题
配置IfNotPresent, 但是出现偶尔更新镜像后,重启 Pod,代码却更新
- ✅ 原因 1:Pod 被调度到了新节点(或清理过镜像的节点)
- 节点 A 有旧镜像 → 用本地缓存
- 节点 B 没有镜像 → 拉取最新版本
- 如果你节点偶尔自动清理镜像(如
kubelet的镜像回收机制),也可能触发拉取
- ✅ 原因 2:镜像被手动清理了
- 有人跑了
docker image prune或crictl rmi - 导致节点本地镜像被删,下次重启 Pod 时重新拉取
- 有人跑了
