一、Job YAML
kubectl explain job.spec
字段 | 值类型 | 说明 |
---|---|---|
activeDeadlineSeconds |
integer |
Job 存活时间;一旦 Job 运行时间达到 activeDeadlineSeconds 秒,其所有运行中的 Pod 都会被终止, 并且 Job 的状态更新为 type: Failed 及 reason: DeadlineExceeded
|
backoffLimit |
integer |
重启几次后为失败。默认: 6
|
completionMode |
string |
完成模式NonIndexed : 当成功完成的 Pod 个数达到 .spec.completions 所 设值时认为 Job 已经完成。换言之,每个 Job 完成事件都是独立无关且同质的Indexed : Job 的 Pod 会获得对应的完成索引。当每个索引都对应一个成功完成的 Pod 时,Job 被认为是已完成的 |
completions |
integer |
成功完成任务数量,当达到指定数量时表示 job 完成 |
manualSelector |
boolean |
系统生成 selector 匹配符 |
parallelism |
integer |
并行性请求(.spec.parallelism)可以设置为任何非负整数。 如果未设置,则默认为 1。 如果设置为 0,则 Job 相当于启动之后便被暂停,直到此值被增加。 |
selector |
Object |
POD 选择器 |
suspend |
boolean |
挂起 job |
template |
Object |
一个 pod 模板 |
ttlSecondsAfterFinished |
integer |
清理已完成的 job |
示例:
apiVersion: batch/v1
kind: Job
metadata:
name: pi
spec:
template:
spec:
containers:
- name: pi
image: perl:5.34.0
command: ["perl", "-Mbignum=bpi", "-wle", "print bpi(2000)"]
restartPolicy: Never
backoffLimit: 4
一、CronJob YAML
字段 | 值类型 | 说明 |
---|---|---|
concurrencyPolicy |
string |
声明了 CronJob 创建的任务执行时发生重叠如何处理Allow :默认。CronJob 允许并发任务执行Forbid : CronJob 不允许并发任务执行;如果新任务的执行时间到了而老任务没有执行完,CronJob 会忽略新任务的执行Replace : 如果新任务的执行时间到了而老任务没有执行完,CronJob 会用新任务替换当前正在运行的任务 |
* jobTemplate |
Object |
一个 pod 模板 |
* schedule |
string |
计划任务。语法 * (分钟 0 - 59) * (小时 0 - 23) * (月的某天 1 - 31) * (月份 1 - 12) * (周的某天 0 - 6)
|
startingDeadlineSeconds |
integer |
任务延迟开始的最后期限。也就是说任务如果由于某种原因错过了调度时间,开始该任务的截止时间的秒数 |
suspend |
boolean |
挂起针对 CronJob 执行的任务 |
failedJobsHistoryLimit / successfulJobsHistoryLimit
|
integer |
这两个字段指定应保留多少已完成和失败的任务。 默认设置分别为 3 和 1。将限制设置为 0 代表相应类型的任务完成后不会保留 |
示例:
apiVersion: batch/v1
kind: CronJob
metadata:
name: hello
spec:
schedule: "* * * * *"
jobTemplate:
spec:
template:
spec:
containers:
- name: hello
image: busybox:1.28
imagePullPolicy: IfNotPresent
command:
- /bin/sh
- -c
- date; echo Hello from the Kubernetes cluster
restartPolicy: OnFailure
网友评论