job的restart策略只能是:
1. Nerver 只要任務(wù)沒有完成,則是新創(chuàng)建pod運行,直到j(luò)ob完成會產(chǎn)生多個pod
2. OnFailure 只要pod沒有完成,則會重啟pod,直到j(luò)ob完成
參數(shù):
parallelism: 1 一次性運行pod的個數(shù)
completions: 1 有一個pod運行成功
backoffLimit: 6 失敗pod的極限次數(shù)
job啟動失敗的情況下,job必須要完成一次:
1.如果restart策略設(shè)置為Nerver,則不斷生成新的pod來執(zhí)行job的工作,不會重啟
2.如果restart策略設(shè)置為OnFailure,則會不斷重啟pod,直到完成一次。
應(yīng)用-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
應(yīng)用-cronjob
1.啟用cronjob
vim /etc/kubernetes/manifests/kube-apiserver.yaml
#添加
- --runtime-config=batch/v2alpha1=true
#重啟服務(wù)
systemctl restart kubelet.service
#驗證
kubectl api-versions

image.png
2.創(chuàng)建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