Job
Job启动后,只运行一个Pod,Pod运行结束后整个Job也就立刻结束;
Example:
输出圆周率小数点后2000位,运行时间大概为10s
apiVersion: batch/v1
kind: Job
metadata:
name: pi
spec:
template:
spec:
containers:
- name: pi
image: perl
command: ["perl", "-Mbignum=bpi", "-wle", "print bpi(2000)"]
restartPolicy: Never
backoffLimit: 4
CronJob
周期性完成Job,定点时间调度Job运行
策略:
- Allow(默认):允许并发运行Job;
- Forbid:禁止并发运行,如果前一个Job没有完成则直接跳过执行下一个;
- Replace:取消当前正在运行的Job,用一个新的来替换。
Example:
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: test
spec:
concurrencyPolicy: Replace #并发策略
failedJobsHistoryLimit: 1 #失败任务历史显示个数
successfulJobHistoryLimit: 1 #成功Job历史显示个数
schedule: "*/1 * * * *" #表达式 每分钟执行一次
jobTemplate:
spec:
template:
spec:
containers:
- name: test
image: docker.hobot.cc/library/centos:7.4
args:
- /bin/sh
- -c
- echo Hello World
restartPolicy: OnFailure
Example:
apiVersion: batch/v1beta1 #版本
kind: CronJob
metadata:
name: xxxxxx #名称
namespace: xxxx #项目分组
spec:
concurrencyPolicy: Replace #重点 并发策略
failedJobsHistoryLimit: 1 #重点 失败任务历史显示个数
jobTemplate:
metadata: {}
spec:
activeDeadlineSeconds: 600
backoffLimit: 6
completions: 1
parallelism: 1
template:
metadata: {}
spec:
containers:
- command:
- curl
- '-i'
- >-
www.baidu.com
env:
- name: MYPATH
value: /usr/local
image: >-
registry-vpc.cn-shanghai.aliyuncs.com/jinlincentos/mycentos:1.4.1
imagePullPolicy: IfNotPresent
name: xxxxx #应用名称
ports:
- containerPort: 80
protocol: TCP
resources:
requests:
cpu: 250m
memory: 512Mi
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
dnsPolicy: ClusterFirst
restartPolicy: Never #重启策略
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
schedule: '*/1 * * * *' #表达式 每分钟执行一次
startingDeadlineSeconds: 60 #重点 job存活时间 默认不设置为永久
successfulJobsHistoryLimit: 1 #重点 成功job历史显示个数
suspend: true #true 挂起 不运行 false 及运行