Jos*_*man 45 cron kubernetes kubernetes-cronjob kubernetes-jobs
有没有办法自动删除已完成的工作,除了使用cronjob清理已完成的工作?
该K8S工作文件规定,完成作业的预期行为是他们留在已完成的状态,直到手动删除.因为我每天通过k8s cronjobs运行成千上万的工作,我不想保持完成的工作.
JJC*_*JJC 30
您现在可以设置历史记录限制,或者完全禁用历史记录,以便失败或成功的作业无法无限期地保留.在这里看到我的答案.文档在这里.
And*_*rao 14
另一种使用字段选择器的方法:
kubectl delete jobs --field-selector status.successful=1
Run Code Online (Sandbox Code Playgroud)
这可以在 cronjob 中执行,类似于其他答案。
my-sa-namekubectl delete jobs --field-selector status.successful=1
Run Code Online (Sandbox Code Playgroud)
Dav*_*ung 12
我正在使用wernight/kubectl的 kubectl 图像
安排一个 cron 删除任何
completed 2 - 9 days old (所以我有 2 天的时间来审查任何失败的工作)它每 30 分钟运行一次,所以我不考虑 10 天以上的工作
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: cleanup
spec:
schedule: "*/30 * * * *"
jobTemplate:
spec:
template:
spec:
containers:
- name: kubectl-runner
image: wernight/kubectl
command: ["sh", "-c", "kubectl get jobs | awk '$4 ~ /[2-9]d$/ || $3 ~ 1' | awk '{print $1}' | xargs kubectl delete job"]
restartPolicy: Never
Run Code Online (Sandbox Code Playgroud)
rat*_*ath 11
从1.12 Alpha版本开始,这是可能的ttlSecondsAfterFinished。自动清除已完成的作业中的一个示例:
apiVersion: batch/v1
kind: Job
metadata:
name: pi-with-ttl
spec:
ttlSecondsAfterFinished: 100
template:
spec:
containers:
- name: pi
image: perl
command: ["perl", "-Mbignum=bpi", "-wle", "print bpi(2000)"]
restartPolicy: Never
Run Code Online (Sandbox Code Playgroud)
我发现以下工作
要删除失败的作业:
kubectl delete job $(kubectl get jobs | awk '$3 ~ 0' | awk '{print $1}')
Run Code Online (Sandbox Code Playgroud)
要删除已完成的作业:
kubectl delete job $(kubectl get jobs | awk '$3 ~ 1' | awk '{print $1}')
Run Code Online (Sandbox Code Playgroud)
如文档"由用户删除旧作业"所述,请参阅http://kubernetes.io/docs/user-guide/jobs/#job-termination-and-cleanup
我会运行一个pod来根据作业名称和某些条件进行清理,因此让kubernetes至少在这里处理你的进程的可用性.你可以为此运行一个定期工作(假设你运行kubernetes 1.5).
我最近建立了一个kubernetes-operator来完成这项任务.
部署后,它将监视选定的命名空间并删除已完成的作业/ pod,如果它们完成而没有错误/重新启动.
https://github.com/lwolf/kube-cleanup-operator
小智 5
使用jsonpath:
kubectl delete job $(kubectl get job -o=jsonpath='{.items[?(@.status.succeeded==1)].metadata.name}')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
37008 次 |
| 最近记录: |