23

我正在寻找一个kubectl命令来列出/删除所有已完成的作业

我试过了:

kubectl get job --field-selector status.succeeded=1

但我得到:

enfield selector "status.succeeded=1": field label "status.succeeded" not supported for batchv1.Jobter code here

获得工作时--fieldSelector的可能字段是什么?

有一个更好的方法吗 ?

4

3 回答 3

23

要列出所有成功的作业,您可以做的是首先获取所有作业,然后过滤输出:

kubectl get job --all-namespaces | grep "succeeded"

如果要删除所有成功的作业,可以使用以下命令:

kubectl delete job $(kubectl get job -o=jsonpath='{.items[?(@.status.succeeded==1)].metadata.name}')
于 2018-11-29T14:15:11.653 回答
20

你快到了,你可以在下面删除已完成的工作

kubectl delete jobs --all-namespaces --field-selector status.successful=1 
于 2020-07-28T07:20:46.287 回答
6

FWIW,以下返回所有失败的作业:

kubectl get jobs $(kubectl get jobs -o=jsonpath='{.items[?(@.status.failed>0)].metadata.name}')

以及所有仍在运行的作业:

kubectl get jobs $(kubectl get jobs -o=jsonpath='{.items[?(@.status.active==1)].metadata.name}')
于 2019-06-12T21:04:20.113 回答