【问题标题】:Kubernetes Cronjob Pod Scheduling IssueKubernetes Cronjob Pod 调度问题
【发布时间】:2021-11-08 15:48:43
【问题描述】:

我需要了解 Kubernetes cronjob 的行为。即使以前的作业未完成,也会启动新的 cronjob pod。只有一个 pod 正在针对该作业运行,并且之前的 pod 已经消失。为什么第一个工作没有完成就开始新工作。使用kubectl describe job Userjob-1631434800没有失败事件的痕迹

Command: 
kubectl get jobs

Output:
        NAME                                      COMPLETIONS   DURATION   AGE
        Userjob-1631434800                        0/1           25h        25h
        Userjob-1631496960                        0/1           8h         8h

Command:
kubectl get cronjobs

NAME                           SCHEDULE      SUSPEND   ACTIVE   LAST SCHEDULE   AGE
Userjob      */1 * * * *   False     1        8h              26h

【问题讨论】:

    标签: kubernetes kubernetes-cronjob


    【解决方案1】:

    您需要使用 concurrencyPolicy: Forbid。使用这个 cron 作业不允许并发运行;如果是运行新作业的时间,而之前的作业运行尚未完成,则 cron 作业会跳过新作业的运行

    您也可以查看其他选项

    failedJobsHistoryLimit: 1 这将保留最后 1 个失败的作业。

    successfulJobsHistoryLimit: 1 这将保留最后 1 个成功的作业。默认情况下,cronjob 会保留 3 个成功的作业 pod。

    【讨论】:

    • 你确定你是在 CronJob 规范中设置的,而不是在 PodSpec 中?
    猜你喜欢
    • 1970-01-01
    • 2021-05-16
    • 2019-09-13
    • 1970-01-01
    • 2020-11-06
    • 2020-03-23
    • 2020-05-18
    • 2019-07-31
    相关资源
    最近更新 更多