为Kubernetes CronJob创建的Pod设置保留策略

时间:2019-03-18 11:37:12

标签: kubernetes kubernetes-cronjob

我知道Kubernetes CronJobs创建了按CronJob内部指定的时间表运行的Pod。但是,保留政策似乎是武断的,我看不到可以在一段时间内保留失败/成功的Pod的方法。

1 个答案:

答案 0 :(得分:1)

我不确定您在这里问的是什么。

CronJob不创建吊舱。它创建了Jobs(也进行管理),而这些Jobs正在创建Pod。 根据Kubernetes Jobs Documentation,如果作业由更高级别的控制器(例如CronJobs)直接管理,则CronJobs可以基于指定的基于容量的清除策略来清除作业。简而言之,除非删除CronJob,否则不会删除吊舱和作业。您将能够从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将不会创建任何新作业或Pod。您将有权访问已完成的广告连播和工作。

如果以上方法均无济于事,请您提供更多信息,您究竟期望得到什么?
CronJob规范会有所帮助。