为 Kubernetes CronJob 创建的 Pods 设置保留政策

Set retention policy for Pods created by Kubernetes CronJob

我了解 Kubernetes CronJobs 根据 CronJob 内指定的时间表创建 pods 运行。但是,保留政策似乎很武断,我看不出有什么方法可以将 failed/successful pods 保留一段时间。

我不确定你在这里问的到底是什么。

CronJob 不会创建 pods。它创建工作(它也管理)并且这些工作正在创建 pods。 根据 Kubernetes Jobs Documentation 如果 Jobs 直接由更高级别的控制器管理,例如 CronJobs,则 Jobs 可以根据指定的基于容量的清理策略由 CronJobs 清理。简而言之,在您删除 CronJob 之前,pods 和作业不会被删除。您将能够检查来自 Pods/Jobs/CronJob 的日志。只需使用 kubctl describe

默认情况下,CronJob 保留 3 个成功作业的历史记录和仅 1 个失败作业的历史记录。您可以通过参数更改 CronJob 规范中的此限制:

spec:
  successfulJobsHistoryLimit 10
  failedJobsHistoryLimit 0

0 表示 CronJob 不会保留任何失败作业的历史记录
10 表示 CronJob 将保留 10 个成功作业的历史记录

您将无法从失败的作业中保留 pod,因为当作业失败时,它将重新启动,直到成功或达到规范中给出的 backoffLimit。

您还有其他选择是暂停 CronJob。

kubctl patch cronjob <name_of_cronjob> -p '{"spec:"{"suspend":true}}'

如果 spuspend 的值为 true,CronJob 将不会创建任何新作业或 pods。您将可以访问已完成的 pods 和作业。

如果以上none对您有所帮助,能否请您提供更多信息,您到底期望什么?
CronJob 规范会有所帮助。