Job
使用对象:常用于运行那些仅需要执行一次的任务(数据库迁移、批处理脚本、kube-bench扫描等)
种类:
-
非并行job:通常创建一个Pod直至其成功结果
-
固定次数的job:通过设置.sepc.completions(需要成功运行pod的数量),创建多个pod,直到.sepc.completions个pod运行成功
-
带有工作队列的并行Job:设置.spec.Parallelism但不设置.sepc.completions,当所有Pod结束并且至少一个成功时,Job就认为是成功的,根据.spec.completions和.spec.Parallelism的设置,可以将Job划分为以下几种pattern:
参数解释
.spec.template.spec.restartPolicy该属性拥有三个候选值:OnFailure,Never和Always。默认值为Always。它主要用于描述Pod内容器的重启策略。在Job中只能将此属性设置为OnFailure或Never。
.spec.backoffLimit用于设置job的容错次数,默认值为6。默认情况下,除非Pod失败(restartPolicy=Never)或容器错误退出(restartPolicy=OnFailure),否则Job将不间断运行,此时Job遵循 .spec.backoffLimit上述说明。一旦.spec.backoffLimit达到,作业将被标记为失败,并且所有正在运行的Pod将被终止。
.spec.activeDeadlineSeconds作业字段设置秒数,一旦工作到达activeDeadlineSeconds,所有运行的Pod的终止和工作状态将成为type: Failed与reason: DeadlineExceeded。 .spec.backoffLimit与.spec.activeDeadlineSeconds都可以用作pod的终止
使用示例
apiVersion: batch/v1
kind: Job
metadata:
name: kube-bench-master
spec:
parallelism: 3
completions: 3
template: