超时的 Cron 作业

dan*_*uds 13 kubernetes

有没有办法为 kubernetes CronJob 提供超时?

我需要安排一个根据 Cron 计划运行的任务,但我需要将此任务的执行时间限制为仅 20 秒。如果任务运行时间超过 20 秒,则应终止。我尝试使用,.spec.startingDeadlineSeconds但这没有帮助。

alm*_*lki 35

使用cronjob.spec.jobTemplate.spec.activeDeadlineSeconds

领域:

activeDeadlineSeconds 指定作业在系统尝试终止之前可能处于活动状态的相对于 startTime 的持续时间(以秒为单位);值必须是正整数

从文档:

终止作业的另一种方法是设置活动截止日期。为此,将作业的 .spec.activeDeadlineSeconds 字段设置为秒数。

无论创建了多少 Pod,activeDeadlineSeconds 都适用于作业的持续时间。一旦 Job 达到 activeDeadlineSeconds,它的所有 Pod 都会终止,并且 Job 状态将变为类型:Failed with reason: DeadlineExceeded。

  • 我对此给予+1,因为这实际上是 Kubernetes 认证考试中的一个问题。 (2认同)

小智 7

这是一个来自https://kubernetes.io/docs/tasks/job/automated-tasks-with-cron-jobs/的简单示例,并添加了一小时超时进行修改:

apiVersion: batch/v1
kind: CronJob
metadata:
  name: hello
spec:
  schedule: "*/1 * * * *"
  jobTemplate:
    spec:
      activeDeadlineSeconds: 3600
      template:
        spec:
          containers:
          - name: hello
            image: busybox
            imagePullPolicy: IfNotPresent
            command:
            - /bin/sh
            - -c
            - date; echo Hello from the Kubernetes cluster
          restartPolicy: OnFailure
Run Code Online (Sandbox Code Playgroud)