learning/k8s-intermediate/workload/wl-job/spec.md
与所有的 Kubernetes 对象一样,Job 对象的 YAML 文件中,都需要包括如下三个字段:
.apiVersion.kind.metadataJob 对象的 YAML 文件,还需要一个 .spec 字段。
.spec.template 是必填字段:
apiVersion 字段和 kind 字段.spec.template.spec.labels,参考 Pod Selector.spec.template.spec.restartPolicy,此处只允许使用 Never 和 OnFailure 两个取值.spec.selector 字段是可选的。绝大部分情况下,您不需要指定该字段。只有在少数情况下,您才需要这样做,请参考 Job 的特殊操作
有三种主要的任务类型适合使用 Job 运行:
.spec.completions 为一个非零正整数.spec.completions 个 Pod,编号为 1 - .spec.completions <Badge type="error">尚未实现</Badge>.spec.completions 中每一个编号都有一个对应的 Pod 执行成功时,Job 进入完成状态.spec.completions,使用 .spec.parallelismcompletions 和 parallelism
.spec.completions 和 .spec.parallelism 可以不填写,默认值都为 1.spec.completions 为您期望的个数;同时不设置 .spec.parallelism 字段(默认值为 1).spec.completions 字段,且必须设置 .spec.parallelism 为0或任何正整数并发数 .spec.parallelism 可以被设置为0或者任何正整数,如果不设置,默认为1,如果设置为 0,则 Job 被暂停,直到该数字被调整为一个正整数。
实际的并发数(同一时刻正在运行的 Pod 数量)可能比设定的并发数 .spec.parallelism 要大一些或小一些,不一定严格相等,主要的原因有:
.spec.parallelism 比这个数字更大,将被忽略