一、yaml文件示例
apiVersion: batch/v1
kind: Job
metadata:name: test-jobnamespace: mtactor
spec:completions: 3parallelism: 1backoffLimit: 5activeDeadlineSeconds: 100template:spec:containers:- name: test-jobimage: centoscommand: ["echo","test-cron"]restartPolicy: Never
二、yaml文件解析
1、第1~5行
-(apiVersion: batch/v1)kubernetes中apisver的版本,详情请参考(kubernetes 关于apiVersion版本的报错-CSDN博客)
-(kind: Job)表示需要创建一个Job
-(metadata:)元数据的定义
-(name: test-job)Job的名字
-(namespace: mtactor)Job属于哪个namespace
2、第6~10行
-(spec:)Job的正文开始
-(completions: 3)成功次数,成功运行3次,Job任务才算是成功。Job每运行1次,Job会启动1个Pod,3个Pod都成功了,Job任务才算成功
-(parallelism: 1)并发数。运行的时候同时启动几个Pod来运行Job任务
-(backoffLimit: 5)失败阈值。达到5次失败Job退出
-(activeDeadlineSeconds: 100)达到100秒,直接终止所有的Pod,不论是否成功执行
3、第11~17行
Pod的相关定义,详情请参考(kubernetes pod yaml文件解析-CSDN博客)
-(restartPolicy: Never)重启策略
关于pod设置重启策略说明:
(OnFailure)job会在pod出现故障时重启容器,而不会创建新的pod,failed次数不变
(Never)job会在pod出现故障时创建新的pod,并且故障的pod也不会消失,也不会重启,failed次数加1
(Always)job会在pod出现故障时一直重启,这也就意味着job任务会重复去执行任务,因此不能设置Always