如何使用 kubectl 确定 K8s 作业是失败还是成功?

How to find out if a K8s job failed or succeeded using kubectl?

我有一个运行了一段时间的 Kubernetes 作业,我需要检查它是失败了还是成功了。

我会定期检查:

kubectl describe job/myjob | grep "1 Succeeded"

这行得通,但我担心 kubernetes 的更改会破坏它;比如,消息更改为“1 成功完成”(愚蠢的文字,但你知道我的意思)现在我的 grep 将找不到它要找的东西。

有什么建议吗?这是在 bash 脚本中完成的。

您可以使用 jsonpath 过滤从工作中获取此信息到 select 您感兴趣的工作的 .status.succeeded 字段。它只会 return 您的值有兴趣。

来自 kubectl explain job.status.succeeded:

The number of pods which reached phase Succeeded.

此命令将为您获取指定特定作业的字段:

kubectl get job <jobname> -o jsonpath={.status.succeeded}