kubernetes kubectl列出/删除所有已完成的作业

v6ylcynt  于 2023-02-21  发布在  Kubernetes
关注(0)|答案(4)|浏览(194)

我正在寻找一个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可能包含哪些字段?
有没有更好的办法?

l3zydbqr

l3zydbqr1#

你几乎在那里,你能做下面删除完成的工作

kubectl delete jobs --all-namespaces --field-selector status.successful=1
wsewodh2

wsewodh22#

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

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

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

kubectl delete job $(kubectl get job -o=jsonpath='{.items[?(@.status.succeeded==1)].metadata.name}')
46scxncf

46scxncf3#

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}')
vktxenjb

vktxenjb4#

更简洁的版本:

kubectl delete pod --field-selector=status.phase==Succeeded

相关问题