作业的Kubernetes状态条件列表?
是否有任何资源可以概述kubernetes作业可能具有的所有状态条件 我想知道,因为我想在运行作业时检查作业是否已经运行,如果已经运行,请退出新作业 直到kubectl get jobs myjob-o jsonpath='{.status.conditions[?(@.type==“Complete”)].status}之前,我遇到了作业的Kubernetes状态条件列表?,kubernetes,kubectl,Kubernetes,Kubectl,是否有任何资源可以概述kubernetes作业可能具有的所有状态条件 我想知道,因为我想在运行作业时检查作业是否已经运行,如果已经运行,请退出新作业 直到kubectl get jobs myjob-o jsonpath='{.status.conditions[?(@.type==“Complete”)].status}之前,我遇到了;做睡眠1;做了很多次,但我想知道它是否正在运行,而不是它是否已经完成。不希望等待(ha)kubectl 1.11等待功能这意味着唯一的类型值为“完成”和“失败”
;做睡眠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
状态“真”或“假”是什么意思<代码>完成时间
如果作业未成功完成,则不会填充时间,因此它对于确定作业是否已完成不是非常有用。这是迄今为止对我来说最有用的三个答案。