Deployment Openshift从图像流部署相同的标记

Deployment Openshift从图像流部署相同的标记,deployment,openshift,openshift-client-tools,rollout,Deployment,Openshift,Openshift Client Tools,Rollout,我在openshift中有一个部署配置,它将轮询映像流中的更改,并在有新映像可用时启动新的部署。我需要从imagestream重新启动/重新部署相同的标记。我可以通过openshift web控制台中项目的deployments部分中的deploy选项卡来实现这一点。正在检查相同的cli版本。我是openshift的新手&我找不到它。我签出了oc卷展栏选项,但它基本上部署了最新的标记,但我需要重新部署现有的标记本身 如果我正确理解了这个问题,您希望使用具有特定图像标记的图像流中的图像重新部署并重

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

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

实现这一点的一种方法是通过将DeploymentConfig中的映像设置为所需的标记来更新映像的映像标记。如果DeploymentConfig定义了“ConfigChange”类型的触发器,则更新将触发自动重新部署和pod重启。要更新DeploymentConfig,请编辑它(
oc edit dc/
)或

否则,就像在OpenShift web控制台中一样,要回滚到特定的部署版本,请运行:

oc卷展栏撤消dc/--to revision=

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

编辑:当pod根据图像流中的更改自动重新启动图像时,“OpenShift方式”是使用触发器。文档中的一个示例是[此处][3]


这在开发过程中可能很方便,但一般来说,最好的做法是对每个图像版本进行不同的标记,并在通过标记引用图像时进行标记。

实际上,您从一开始就得到了正确的答案。正确的方法是使用最新的dc/dcname。这相当于在UI中点击“部署”按钮。您不需要修改部署来“欺骗”它进行重新部署

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

从oc卷展栏最新版本的手册页:
“使用触发器的最新状态启动部署配置的新卷展栏”

尝试更改部署配置上批注的值。看,我想实现的是,用外行的话说,只是重新启动领奖台,因为某种原因,你不得不这样做,您可以使用
oc set image
而无需编辑
dc
。由@GrahamDumpleton提供的好建议-OpenShift的
oc
可以更轻松地在部署配置中更改映像,而无需使用通用的
patch
命令。@apisim&@GrahamDumpleton感谢您的建议,事实上,正如我在问题中已经提到的,我已经在使用
触发器:映像更改
进行正常部署。我所寻找的通常是pod当前运行的同一映像的pod重启/重新部署。最近的一次是oc edit dc,如果我只是增加dc中最新版本的值,它将重新部署相同的图像。但是oc编辑dc是交互式的,我想自动化它。有什么想法吗?或者有更好的方法来实现这一点?再次感谢@user2700022您是否阅读了作为对原始问题的评论提供的链接。您可以使用其中的示例使用
ocpatch
命令。我使用了ocpatch和ocrollout&两者都达到了目的。最后,我决定采用oc Rollow,因为我认为这是更好的方法。