作业的Kubernetes状态条件列表?

作业的Kubernetes状态条件列表?,kubernetes,kubectl,Kubernetes,Kubectl,是否有任何资源可以概述kubernetes作业可能具有的所有状态条件 我想知道,因为我想在运行作业时检查作业是否已经运行,如果已经运行,请退出新作业 直到kubectl get jobs myjob-o jsonpath='{.status.conditions[?(@.type==“Complete”)].status}之前,我遇到了;做睡眠1;做了很多次,但我想知道它是否正在运行,而不是它是否已经完成。不希望等待(ha)kubectl 1.11等待功能这意味着唯一的类型值为“完成”和“失败”

是否有任何资源可以概述kubernetes作业可能具有的所有状态条件

我想知道,因为我想在运行作业时检查作业是否已经运行,如果已经运行,请退出新作业

直到kubectl get jobs myjob-o jsonpath='{.status.conditions[?(@.type==“Complete”)].status}之前,我遇到了
;做睡眠1;做了很多次,但我想知道它是否正在运行,而不是它是否已经完成。不希望等待(ha)kubectl 1.11等待功能

这意味着唯一的
类型
值为“完成”和“失败”,并且它们可能具有
“真”
“假”
状态

除了job status conditions(作业状态条件)数组外,如果您只想知道它是否完成,还可以查看作业状态
active
计数,以及
startTime
completionTime

kubectl get jobs——命名空间-o jsonpath='{.status.conditions[?(@.type==“Successed”)].status}'
kubectl get jobs <myjob> --namespace <mynamespae> -o jsonpath='{.status.conditions[?(@.type=="Succeeded")].status}'

我相信这有助于获取给定选择器的所有作业状态,并在结果可以在bash或CI中解析后,等待某些特定状态:

kubectl get job -n myspace --selector=appName=myapplication -o json | jq -r '.items[] | .metadata.name + ":" + (.status.conditions[] | select(.status == "True") .type + ":" + .status)'
myapplication-job-1558097758:Complete:True
myapplication-job-1558101228:Failed:True
在这里,我还发现了另一个bash示例:

作者@ruazn2:

until [[ $SECONDS -gt $end ]] || [[ $(kubectl get jobs $job_name -o jsonpath='{.status.conditions[?(@.type=="Failed")].status}') == "True" ]] || [[ $(kubectl get jobs $job_name -o jsonpath='{.status.conditions[?(@.type=="Complete")].status}') == "True" ]]; do

状态“真”或“假”是什么意思<代码>完成时间
如果作业未成功完成,则不会填充时间,因此它对于确定作业是否已完成不是非常有用。这是迄今为止对我来说最有用的三个答案。