k8s-Cronjob避坑之路
Refer_Url:https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/一个 CronJob 对象类似于crontab(cron table)文件中的一行, 它根据指定的预定计划周期性地运行一个 Job,格式可以参考Cron。注意:在预定计划中,问号(?)和星号(*)的意义是相同的,表示给定字段的取值是任意可用值。
·
Refer_Url: https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/
一个 CronJob 对象类似于 crontab (cron table)文件中的一行, 它根据指定的预定计划周期性地运行一个 Job,格式可以参考 Cron 。
注意: 在预定计划中,问号(?
)和星号(*
)的意义是相同的,表示给定字段的取值是任意可用值。
注意: 在 Kubernetes 1.4 版本引入了 ScheduledJob 资源,但从 1.5 版本开始改成了 CronJob。
典型的用法如下所示:
- 在给定的时间点调度 Job 运行
- 创建周期性运行的 Job,例如:数据库备份、发送邮件。
JOB_TEMPLATE:
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: xxxxxx #名称
namespace: xxxx #命名空间
spec:
concurrencyPolicy: Replace #1 并发策略
failedJobsHistoryLimit: 1 #2 失败任务历史显示个数
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.cn-shanghai.aliyuncs.com/centos: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 #3 重启策略
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
schedule: '*/1 * * * *' #表达式 每分钟执行一次
startingDeadlineSeconds: 60 #4 job存活时间 默认不设置为永久
successfulJobsHistoryLimit: 1 #5 成功job历史显示个数
suspend: true #6 true 挂起 不运行 false 及运行
并发策略 concurrencyPolicy
spec.concurrencyPolicy 字段也是可选的。它指定了如何处理被 Cron Job 创建的 Job 的并发执行。只允许指定下面策略中的一种:
Allow(默认):允许并发运行 Job
Forbid:禁止并发运行,如果前一个还没有完成,则直接跳过下一个
Replace:取消当前正在运行的 Job,用一个新的来替换
更多推荐
已为社区贡献3条内容
所有评论(0)