Kubernetes Jobs重复创建 Pod,直到指定数量的容器成功终止。作业通常与更高级别的CronJob机制一起使用,该机制会按循环计划自动启动新作业。
定期使用 Jobs 和 CronJobs 通常会导致大量对象在集群中徘徊。Jobs 及其 Pod 在完成后会被有意无限期保留。这样您就可以检查作业的状态并在将来检索其日志。kubectl get pods但是,当您运行类似或的命令时,太多已完成的作业会污染 Kubectl 输出kubectl get jobs。这会使人们更难专注于相关活动。
在本文中,我们将分享一些清理旧作业的方法。您将能够自动或按需从集群中删除冗余对象。
CronJob 历史保留限制
自 Kubernetes v1.6 起,由 CronJob 创建的作业支持自动清理。此方法允许您为已完成和失败的作业配置单独的删除阈值。
通过设置CronJob 对象上的spec.successfulJobsHistoryLimit和字段来启用清理策略:spec.failedJobsHistoryLimit
apiVersion: batch/v1
kind: CronJob
metadata:
name: demo-cron
spec:
schedule: "* * * * *"
successfulJobsHistoryLimit: 5
failedJobsHistoryLimit: 10
jobTemplat