获取 OpenShift Pod 部署的准确状态

问题描述 投票:0回答:1

我在 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 集群之外。

jenkins kubernetes openshift
1个回答
0
投票

你必须使用

oc rollout status

剧情简介

oc 推出状态

描述

查看最新推出的状态,直到完成。

示例:

oc rollout deployments/name # using Deployment Object or:
oc rollout deploymentconfig/name # Using Deployment Config Object
© www.soinside.com 2019 - 2024. All rights reserved.