Job控制器
Job控制器用于调配Pod运行一次性任务,容器中的进程在正常结束之后将Pod对象置于“Completed”状态。若容器中的进程因错误终止,则需要依据配置确定重启与否。未运行完成的对象因节点故障而终止时会被重新调度。
实际使用中有的作业让我可能需要运行不止一次,可以配置他们以串行和并行的方式运行。总结起来一共有两种,具体如下:
- 单工作队列的串行式Job:多个一次性的作业串行执行多次作业,直到满足期望的次数。
- 多工作队列的并行式Job:可以设置多个工作队列,每个队列均负责运行一个作业。
Job常用于管理那些运行一段时间便可完成的任务,如计算或备份操作。
创建Job对象
Job控制器的必要字段只有template,其位于API群组“batch/v1”之中。Job会为其Pod对象自动添加“job-name=JOB_NAME”和“controller-uid=UID”标签,并使用标签选择器完成对controller-uid标签的关联。下面是一个示例:
apiVersion: batch/v1
kind: Job
metadata:
name: job-example
spec:
template:
spec:
containers:
- name: myjob
image: alpine
command: ["/bin/sh", "-c", "sleep 20"]
restartPolicy: Never
注意:Pod模版中的spec.restartPolicy默认为Always,这并不适用于Job,需要手动指定为Never或OnFailure
创建完成之后即可使用kubectl get
或kubectl describe
查看资源状态。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!