kubectl list / 删除所有已完成的作业
kubectl list / delete all completed jobs
我正在寻找 kubectl 命令来列出/删除 all completed jobs
我试过了:
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可能的字段有哪些?
有更好的方法吗?
要列出所有成功的作业,您可以先获取所有作业,然后过滤输出:
kubectl get job --all-namespaces | grep "succeeded"
如果要删除所有成功的作业,可以使用以下命令:
kubectl delete job $(kubectl get job -o=jsonpath='{.items[?(@.status.succeeded==1)].metadata.name}')
FWIW,以下 returns 所有失败的作业:
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}')
大功告成,您可以执行以下操作删除已完成的作业
kubectl delete jobs --all-namespaces --field-selector status.successful=1
我正在寻找 kubectl 命令来列出/删除 all completed jobs
我试过了:
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可能的字段有哪些?
有更好的方法吗?
要列出所有成功的作业,您可以先获取所有作业,然后过滤输出:
kubectl get job --all-namespaces | grep "succeeded"
如果要删除所有成功的作业,可以使用以下命令:
kubectl delete job $(kubectl get job -o=jsonpath='{.items[?(@.status.succeeded==1)].metadata.name}')
FWIW,以下 returns 所有失败的作业:
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}')
大功告成,您可以执行以下操作删除已完成的作业
kubectl delete jobs --all-namespaces --field-selector status.successful=1