一、什么是job
Job 控制器常用于管理那些运行一段时间就能够“完成” 的任务,例如离线数据分析,数据备份等,当任务完成后,由Job控制器将该Pod对象置于 Complete 完成状态,在完成一定时间后,当达到了用户指定的生存周期,由系统自动删除该任务。
如果,容器中的进程因 “错误” 而终止,则需要依赖 RestartPolicy配置来确定是否重启,如果是因为 节点故障造成 Pod意外终止的话,会被重新创建起来继续运行。
- 1、Pod执行,退出状态码为0,则表示执行成功,而后将该Pod状态置于Complete;
- 2、Pod执行,退出状态码为非0,检查restartpolicy为Never,表示永不重启,而后将该Pod状态置于Failure;
- 3、Pod执行,退出状态码为非0,检查restartpolicy为表示退出状态码如果不为@时重启该Pod,所以会尝试OnFailure重新拉取Pod,直到执行成功为止;
二、Job的工作方式
在实际生产环境中,有些任务可能需要运行不止一次,用户可以配置他们以串行或并行方式运行起来。
- 串行Job: 将一个作业串行执行多次直到满足期望的次数;
- 并行Job: 设定工作队列数,同时运行,而每个队列仅运行一个作业;
注意: 对于有严格次序要求的作业,只能选择串行执行,而没有严格次序要求的可以选择并行来提升运行的效率和速度;
三、job资源清单
四、Job的示例
apiVersion: batch/v1
kind: Job
m