web-dev-qa-db-ja.com

ジョブのKubernetesステータス条件のリスト?

Kubernetesジョブが持つ可能性のあるすべてのステータス状態の概要を提供するリソースはありますか?

ジョブを実行するときに、ジョブが既に実行されているかどうかを確認し、実行されている場合は、新しいジョブを終了したいと思います。

until kubectl get jobs myjob -o jsonpath='{.status.conditions[?(@.type=="Complete")].status}' | grep True ; do sleep 1 ; doneに何度も遭遇しましたが、すでに完了しているかどうかではなく、実行中かどうかを知りたいです。 kubectl 1.11の待機機能を待たない(ha)

8
wesvb

https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.11/#jobcondition-v1-batch は、typeの値が「完全」および「失敗」し、”True”または”False”status

ジョブステータス条件配列に加えて、ジョブステータスactiveカウント、および単に興味がある場合はstartTimecompletionTimeを確認することも役立ちます。それが終わったかどうかで。

7
David Maze
kubectl get jobs <myjob> --namespace <mynamespae> -o jsonpath='{.status.conditions[?(@.type=="Succeeded")].status}'
1
Zhang Chen

これは、特定のセレクターのすべてのジョブステータスを取得するのに役立ち、結果が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の別の例を見つけました:

コマンドラインを使用して、失敗/成功のいずれかでkubernetesジョブが完了するのを待ちます

@ 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
1
kivagant