如何使用 kubectl 查明 K8s 作业是失败还是成功?

Gre*_*icz 2 kubernetes kubectl kubernetes-jobs

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

我正在定期检查:

kubectl describe job/myjob | grep "1 Succeeded"
Run Code Online (Sandbox Code Playgroud)

这行得通,但我担心 kubernetes 的变化会破坏这一点;例如,消息更改为“1 成功完成”(愚蠢的文本,但您知道我的意思),现在我的 grep 将找不到它要查找的内容。

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

Mar*_*cus 5

您可以使用 jsonpath 过滤从作业中获取此信息,以选择您感兴趣的作业的 .status.succeeded 字段。它只会返回您感兴趣的值。

来自kubectl explain job.status.succeeded

达到阶段成功的 pod 数量。

此命令将为您提供指定特定作业的字段:

kubectl get job <jobname> -o jsonpath={.status.succeeded}
Run Code Online (Sandbox Code Playgroud)