【问题标题】:Set retention policy for Pods created by Kubernetes CronJob为 Kubernetes CronJob 创建的 Pod 设置保留策略
【发布时间】:2019-08-08 18:27:21
【问题描述】:

我了解 Kubernetes CronJobs 创建的 Pod 会按照 CronJob 中指定的时间表运行。但是,保留政策似乎是武断的,我看不到可以将失败/成功的 pod 保留一段时间的方法。

【问题讨论】:

    标签: kubernetes kubernetes-cronjob


    【解决方案1】:

    我不确定您在这里到底要问什么。

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

    默认 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。您将可以访问已完成的 pod 和作业。

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

    【讨论】:

      猜你喜欢
      • 2021-04-08
      • 2019-11-26
      • 2020-06-16
      • 1970-01-01
      • 2021-05-12
      • 1970-01-01
      • 2021-01-16
      • 2020-01-09
      • 1970-01-01
      相关资源
      最近更新 更多