赞
踩
job用于执行一次性任务,如数据处理、分析、测试、运算等需求,运算完成后,也就结束了,不用一直计算下去。
创建一个job后,会创建一个pod,如果pod执行成功了,则此job结束,若此pod执行失败,则创建一个新的pod或者重启pod,再次执行该任务。
job的restart策略只有如下两种(没有pod的策略Always):
kubectl create job job1 --image=busybox --dry-run=client -o yaml -- sh -c "echo hello && sleep 30" > job1.yaml
kubectl apply -f job1.yaml
kubectl get pod
kubectl get job
kubectl get pod
kubectl get job
kubectl delete jobs.batch job1
对于一些任务,测试一次成功了,不能算成功,需要多次测试,此时可以在yaml文件中使用下面的参数:
例子:
spec
parallelism: 3
completions: 6
backoffLimit: 4
省略
kubectl create job job2 --image=perl -- perl -Mbignum=bpi -wle 'print bpi(1000)'
kubectl get pod
kubectl logs job2--1-5kz6c
kubectl delete job job2
cronjob是周期性的、循环性的(如每天清理临时文件),简写为cj。
kubectl create cj job2 --image=busybox --schedule="*/1 * * * *" --dry-run=client -o yaml -- /bin/sh -c "echo hello world" > job2.yaml
kubectl apply -f job2.yaml
kubectl get cj
kubectl get pod
kubectl delete -f job2.yaml
注意:在cronjob的yaml文件里,.spec.jobTemplate.spec字段里,可以写activeDeadlineSeconds参数,指定cronjob所生成的pod只能执行多久。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。