2016-12-29 36 views

回答

2

由于文档“这是由用户删除旧任务”中所述,看到http://kubernetes.io/docs/user-guide/jobs/#job-termination-and-cleanup

我会跑荚基于作业名称和一定条件下做到这一点的清除,从而至少让kubernetes在这里处理您的流程的可用性。您可以为此运行重复性作业(假设您运行kubernetes 1.5)。

3

简单的方式通过运行一个cron作业来删除它们:

kubectl get jobs --all-namespaces | sed '1d' | awk '{ print $2, "--namespace", $1 }' | while read line; do kubectl delete jobs $line; done 
+0

建议不要分析文本输出。相反,你应该请求一个json,用jq解析它并遍历结果。 –

10

您现在可以设置历史限制或禁用的历史完全,使失败或成功的作业不会保持在约下去。看到我的回答here。文档是here

2

我最近建了一个kubernetes操作符来完成这个任务。

部署完成后,它将监视选定的命名空间并删除完成的作业/窗格,如果它们完成而没有错误/重新启动。

https://github.com/lwolf/kube-cleanup-operator

+2

请不要只是发布一些工具或库作为答案。至少在答案中演示[它如何解决问题](http://meta.stackoverflow.com/a/251605)。 –