标签:active 示例 使用 负载 min 区别 删除 文件中 批量
Job和CronJob是负责批量处理短暂的一次性任务(short lived one-off tasks),即仅执行一次的任务,它保证批处理任务的一个或多个Pod成功结束。以下是一个Job配置,其计算π到2000位并打印输出。Job结束需要运行50个Pod,这个示例中就是打印π 50次,并行运行5个Pod,Pod如果失败最多重试5次。
apiVersion: batch/v1
kind: Job
metadata:
name: pi-with-timeout
spec:
completions: 50 # 运行的次数,即Job结束需要成功运行的Pod个数
parallelism: 5 # 并行运行Pod的数量,默认为1
backoffLimit: 5 # 表示失败Pod的重试最大次数,超过这个次数不会继续重试。
activeDeadlineSeconds: 10 # 表示Pod超期时间,一旦达到这个时间,Job及其所有的Pod都会停止。
template: # Pod定义
spec:
containers:
- name: pi
image: perl
command:
- perl
- "-Mbignum=bpi"
- "-wle"
- print bpi(2000)
restartPolicy: Never
根据completions和parallelism的设置,可以将Job划分为以下几种类型。
表1 任务类型
Job类型 | 说明 | 使用示例 |
---|---|---|
一次性Job | 创建一个Pod直至其成功结束 | 数据库迁移 |
固定结束次数的Job | 依次创建一个Pod运行直至completions个成功结束 | 处理工作队列的Pod |
固定结束次数的并行Job | 依次创建多个Pod运行直至completions个成功结束 | 多个Pod同时处理工作队列 |
并行Job | 创建一个或多个Pod直至有一个成功结束 | 多个Pod同时处理工作队列 |
相比Job,CronJob就是一个加了定时的Job,CronJob执行时是在指定的时间创建出Job,然后由Job创建出Pod。
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: cronjob-example
spec:
schedule: "0,15,30,45 * * * *" # 定时相关配置
jobTemplate: # Job的定义
spec:
template:
spec:
restartPolicy: OnFailure
containers:
- name: main
image: pi
CronJob的格式从前到后就是:
如果您想要每个月的第一天里面每半个小时执行一次,那就可以设置为" 0,30 1 " 如果您想每个星期天的3am执行一次任务,那就可以设置为 "0 3 * 0"。
更详细的CronJob格式说明请参见https://zh.wikipedia.org/wiki/Cron。
标签:active 示例 使用 负载 min 区别 删除 文件中 批量
原文地址:https://blog.51cto.com/14051317/2553700