Docker 当容器摘要相同时禁用Kubernetes pod更新,即使给定了不同的图像标记
假设我有一个图像Docker 当容器摘要相同时禁用Kubernetes pod更新,即使给定了不同的图像标记,docker,kubernetes,deployment,Docker,Kubernetes,Deployment,假设我有一个图像foo,带有标签v1。 所以我通过foo:v1在Kubernetes上部署了它 然而,出于某种原因(例如monorepo中的monoversion),我使用标记v2将完全相同的图像推送到容器注册表。 我将k8s清单更改为foo:v2 在这种情况下,我只想在v1和v2的image digest不同时更新pod。因此,对于foo,摘要是相同的,因此foo:v1的容器应该继续运行 这可能吗?如果是,怎么做 谢谢如果不重新启动pod,就无法更新标签图像。 唯一可行的方法是显式地使用摘要而
foo
,带有标签v1
。
所以我通过foo:v1
在Kubernetes上部署了它
然而,出于某种原因(例如monorepo中的monoversion),我使用标记v2
将完全相同的图像推送到容器注册表。
我将k8s清单更改为foo:v2
在这种情况下,我只想在v1
和v2
的image digest
不同时更新pod。因此,对于foo,摘要是相同的,因此foo:v1
的容器应该继续运行
这可能吗?如果是,怎么做
谢谢如果不重新启动pod,就无法更新
标签
图像。
唯一可行的方法是显式地使用摘要
而不是标记
所以现在图像规格如下所示:
spec:
image: foo@sha256:50cf965a6e08ec5784009d0fccb380fc479826b6e0e65684d9879170a9df8566
这样,图像就不依赖于标记。摘要可以在dockerhub
上找到,也可以通过运行命令docker images--Digests
谢谢!在Reddit()中,建议获取kbld.io
以及在部署时自动解析要摘要的标记。(不过还没试过)