是否可以为kubernetes CronJob提供超时?
我需要安排一个按照Cron时间表运行的任务,但是我需要将此任务的执行时间限制为仅20秒。如果任务运行时间超过20秒,则应终止该任务。
我尝试使用.spec.startingDeadlineSeconds
,但这无济于事。
答案 0 :(得分:1)
使用cronjob.spec.jobTemplate.spec.activeDeadlineSeconds
:
领域:
activeDeadlineSeconds 指定相对于作业的startTime的持续时间(以秒为单位) 在系统尝试终止之前可能处于活动状态;值必须是 正整数
终止工作的另一种方法是设置有效期限。做 通过将Job的.spec.activeDeadlineSeconds字段设置为 秒数。
activeDeadlineSeconds适用于作业持续时间,否 创建多少个Pod无关紧要。一旦工作达成 activeDeadlineSeconds,其所有Pod均已终止,并且Job 状态将变为类型:失败原因:DeadlineExceeded。
答案 1 :(得分:0)
下面是一个简单的例子,取自 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