job的restart策略只能是:
1. Nerver 只要任务没有完成,则是新创建pod运行,直到job完成会产生多个pod
2. OnFailure 只要pod没有完成,则会重启pod,直到job完成
参数:
parallelism: 1 一次性运行pod的个数
completions: 1 有一个pod运行成功
backoffLimit: 6 失败pod的极限次数
job启动失败的情况下,job必须要完成一次:
1.如果restart策略设置为Nerver,则不断生成新的pod来执行job的工作,不会重启
2.如果restart策略设置为OnFailure,则会不断重启pod,直到完成一次。
应用-job
apiVersion: batch/v1
kind: Job
metadata:
name: job1
spec:
backoffLimit: 6
completions: 1
parallelism: 1
template:
metadata:
name: pi
spec:
containers:
- name: hello
image: docker.io/busybox
command: ["echo","hello world!"]
restartPolicy: Never
应用-cronjob
1.启用cronjob
vim /etc/kubernetes/manifests/kube-apiserver.yaml
#添加
- --runtime-config=batch/v2alpha1=true
#重启服务
systemctl restart kubelet.service
#验证
kubectl api-versions
image.png
2.创建cronjob,apiVersion为之前kube-apiserver.yaml中添加启用的
apiVersion: batch/v2alpha1
kind: CronJob
metadata:
name: job2
spec:
schedule: "*/1 * * * *"
jobTemplate:
spec:
template:
spec:
containers:
- name: hello
image: docker.io/busybox
command: ["echo","hello world!"]
restartPolicy: OnFailure
网友评论