Openshift 从图像流部署相同的标签

Openshift deploy same tag from image stream

我在 openshift 中有一个部署配置,它将轮询图像流中的更改并在新图像可用时启动新部署。我有一个要求,我需要 restart/redeploy 来自图像流的相同标签。我可以通过 openshift web 控制台中项目部署部分的部署选项卡来实现这一点。正在检查相同的 cli 版本。我是 openshift 的新手,我找不到它。我检查了 oc rollout 选项,但它基本上部署了最新的标签,但我需要重新部署现有标签本身。

如果我正确理解了这个问题,您想使用来自具有特定图像标签的图像流中的图像重新部署并重新启动 pod。

实现此目的的一种方法是通过将 DeploymentConfig 中的图像设置为所需的标记来更新图像标记。如果 DeploymentConfig 定义了 "ConfigChange" 类型的触发器,更新将触发自动重新部署和 pod(s) 重启。要更新 DeploymentConfig,请对其进行编辑 (oc edit dc/<deployment_config>) 或 patch it.

否则,就像在 OpenShift Web 控制台中一样,回滚到特定部署 revision,运行:

oc rollout undo dc/<deployment-name> --to-revision=<revision-number>

显然,您需要知道修订号。输入 oc rollout undo --help 以了解该命令的一些复杂之处。

编辑:"OpenShift way" 当基于图像流的图像发生变化时自动重启 pod 是使用 ImageChange 触发器。文档中的一个示例是 [此处][3].

这在开发过程中可能很方便,但总的来说,最佳做法是对每个图像版本进行不同标记,并且 not to use latest 在通过其标签引用图像时。

实际上,您从一开始就有了正确的答案。正确的做法是 oc rollout latest dc/dcname。这相当于点击 UI 中的 'deploy' 按钮。您无需将部署修改为 'trick' 即可重新部署。

当它显示 'latest' 时,表示您的部署配置是最新版本,而不是正在部署的任何映像的最新版本。

来自 oc rollout latest 的手册页: "Start a new rollout for a deployment config with the latest state from its triggers"