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