我有一个 k8s 部署(使用 helm),它应该从 repo 中获取图像。如果我用精确的标签指定图像 - 它将由 k8s 获取。最近 - 为了不更改代码,我将图像名称更改为 xxx/myserver:latest。
我每次更新图像时都会将最新标签推送到 repo:所以 xxx/myserver:v11 -- >xxx.myserver:latest 然后 v12 到达时我将最新标签指向它。
我的问题是,一旦 k8s 获取了最新版本(对于 v11),它就不会再获取它并且会继续构建旧容器。
答案1
您需要在部署中更新镜像拉取策略。默认情况下,如果集群中不存在相同版本,它只会从存储库中拉取镜像。由于您使用的是最新标签,因此 Kubernetes 不知道镜像已更新。您需要使用 Always 的 ImagpullPolicy 强制它每次都拉取。
在生产中使用“最新”通常不是一个好主意,因为您不知道每个 pod 正在运行哪个版本的图像。