#job一次性计划任务相当于linux的at
[root@master greenwich]# cat job.yaml
apiVersion: batch/v1
kind: Job
metadata:
name: job-demo
namespace: greenwich
spec:
template:
spec:
restartPolicy: Never
containers:
- name: counter
image: busybox
command:
- /bin/sh
- -c
- for i in 9 8 7 6 5 4 3 2 1 0 ; do echo $i; done
[root@master greenwich]# kubectl apply -f job.yaml
job.batch/job-demo created
root@master greenwich]# kubectl get job,pod -n greenwich
NAME COMPLETIONS DURATION AGE
job.batch/job-demo 1/1 9s 29s
NAME READY STATUS RESTARTS AGE
pod/job-demo-ghz8r 0/1 Completed 0 21s
[root@master greenwich]# kubectl logs pod/job-demo-ghz8r -n greenwich
9
8
7
6
5
4
3
2
1
0
- job的重启策略:Never和OnFailure
- job.spec.backoffLimit:pod创建失败后重试次数,呈指数增加
- job.spec.activeDeadlineSeconds:来限制任务运行的最长时间
- spec.parallelism:定义并行pod数量
- spec.completions:定义完成pod的数目
#cronjob周期性计划任务相当于linux的crontab
[root@master greenwich]# cat cronjob.yaml
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: cronjob-demo
namespace: greenwich
spec:
schedule: "*/2 * * * *"
jobTemplate:
spec:
template:
spec:
restartPolicy: OnFailure
containers:
- name: hello
image: busybox
args:
- /bin/sh
- -c
- for i in 9 8 7 6 5 4 3 2 1 0 ; do echo $i ; done
[root@master greenwich]# kubectl get cronjob,pod -n greenwich
NAME SCHEDULE SUSPEND ACTIVE LAST SCHEDULE AGE
cronjob.batch/cronjob-demo */2 * * * * False 1 26s 28s
NAME READY STATUS RESTARTS AGE
pod/cronjob-demo-1615429200-9krqj 0/1 Completed 0 19s[root@master greenwich]# kubectl logs pod/cronjob-demo-1615429200-9krqj -n greenwich
9
8
7
6
5
4
3
2
1
0
[root@master greenwich]# kubectl get cronjob,pod -n greenwich
NAME SCHEDULE SUSPEND ACTIVE LAST SCHEDULE AGE
cronjob.batch/cronjob-demo */2 * * * * False 1 13s 2m15s
NAME READY STATUS RESTARTS AGE
pod/cronjob-demo-1615429200-9krqj 0/1 Completed 0 2m6s
pod/cronjob-demo-1615429320-ddltz 0/1 ContainerCreating 0 5s
[root@master greenwich]# kubectl get pods -n greenwich
NAME READY STATUS RESTARTS AGE
cronjob-demo-1615429560-klg8k 0/1 Completed 0 5m21s
cronjob-demo-1615429680-k49gg 0/1 Completed 0 3m21s
cronjob-demo-1615429800-xsc9l 0/1 Completed 0 80s
- 周期-2分钟都会产生一个pod实例
- spec.schedule字段是必须填写的,用来指定任务运行的周期,格式和crontab一样
- spec.jobTemplate用来指定需要运行的任务
- spec.successfulJobsHistoryLimit和spec.failedJobsHistoryLimit,表示历史限制是可选的字段,设置限制的值为0,那么相关类型的Job完成后将不会被保留
job和cronjob
最新推荐文章于 2022-05-11 18:00:59 发布