首页 > 解决方案 > 获取 openshift pod 部署的准确状态

问题描述

我在 Jenkins 中有部署阶段,它执行“oc patch”和“oc rollout”命令。这些命令替换了 DeploymentConfig 中的 docker 镜像名称,并在 openshift 中发布了更改。可以想象,这是异步调用。这意味着在 Jenkins 中,我无法验证新部署的 pod 是否正在运行或失败。Jenkins 只是执行 oc 命令并继续执行下一个阶段。我的要求是我想在 Jenkins 中获取 pod 的实际状态以标记管道成功/失败。

我找不到任何 oc 或 kubectl 命令可以使用同步调用为我提供准确的部署状态。作为解决方法,我编写了 shell 脚本,它在“oc rollout”后的一定时间内检查 pod 的状态(使用 grep),并将退出状态发送回 Jenkins shell。随着管道执行时间的增加,我觉得这不是进行部署验证的正确方法。

我们是否在 openshift/kubernetes 中有标准实用程序,它可以为我提供 pod 部署后的确切状态,我可以依赖并使用它来标记我在 Jenkins 中的部署管道成功/失败。

请注意,我在管道中打开 shell 会话并在安装了 oc cli 的代理上执行 oc cli 命令。该代理不是 openshift 集群的一部分,Jenkins 位于 openshift 集群之外。

标签: jenkinskubernetesopenshift

解决方案


你必须使用oc rollout status

概要

oc 推出状态

描述

观察最新推出的状态,直到完成。


推荐阅读