22 名词解释 Job

Job负责批量处理 短暂的一次性任务 (short lived one-off tasks) ,即仅执行一次的任务,它保证批处理任务的一个或多个Pod成功结束。
Kubernetes支持以下几种Job:
  • 非并行Job:通常创建一个Pod直至其成功结束
  • 固定结束次数的Job:设置. spec.completions ,创建多个Pod,直到. spec.completions 个Pod成功结束
  • 带有工作队列的并行Job:设置.spec.Parallelism但不设置. spec.completions ,当所有Pod结束并且至少一个成功时,Job就认为是成功
根据. spec.completions 和.spec.Parallelism的设置,可以将Job划分为以下几种pattern:
Job类型
使用示例
行为
completions
Parallelism
一次性Job
数据库迁移
创建一个Pod直至其成功结束
1
1
固定 结束次数 的Job
处理工作队列的Pod
依次创建一个Pod运行直至completions个成功结束
2+
1
固定结束次数的并行Job
多个Pod同时处理工作队列
依次创建多个Pod运行直至completions个成功结束
2+
2+
并行Job
多个Pod同时处理工作队列
创建一个或多个Pod直至有一个成功结束
1
2+

Job Controller

Job Controller负责根据Job Spec创建Pod,并持续监控Pod的状态,直至其成功结束。如果失败,则根据restartPolicy(只支持OnFailure和Never,不支持Always)决定是否创建新的Pod再次重试任务。

Job Spec格式

  • spec.template格式同 Pod
  • RestartPolicy仅支持Never或OnFailure
  • 单个Pod时,默认Pod成功运行后Job即结束
  • . spec.completions 标志Job结束需要成功运行的Pod个数,默认为1
  • .spec.parallelism标志并行运行的Pod的个数,默认为1
  • spec.activeDeadlineSeconds标志失败Pod的重试最大时间,超过这个时间不会继续重试
一个简单的例子:
apiVersion : batch / v1
kind : Job
metadata :
name : pi
spec :
template :
metadata :
name : pi
spec :
containers :
- name : pi
image : perl
command : [ "perl" , "-Mbignum=bpi" , "-wle" , "print bpi(2000)" ]
restartPolicy : Never
$ kubectl create - f ./ job . yaml
job "pi" created
$ pods = $ ( kubectl get pods -- selector = job - name = pi -- output = jsonpath ={. items .. metadata . name })
$ kubectl logs $pods
3.141592653589793238462643383279502 ...
固定结束次数的Job示例
apiVersion : batch / v1
kind : Job
metadata :
name : busybox
spec :
completions : 3
template :
metadata :
name : busybox
spec :
containers :
- name : busybox
image : busybox
command : [ "echo" , "hello" ]
restartPolicy : Never

Bare Pods

所谓Bare Pods是指直接用 PodSpec来创建的Pod 即不在ReplicaSets或者ReplicationCtroller的管理之下的Pods )。这些Pod在Node重启后不会自动重启,但Job则会创建新的Pod继续任务。所以,推荐使用Job来替代Bare Pods,即便是应用只需要一个Pod。

参考文档



评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值