Table of Contents
1. Job
1.1 Job 简介
Jobs 表示一次性任务。
job 工作模式
Job 会创建一个或者多个 Pods,并确保指定数量的 Pods 成功终止。
随着 Pods 成功结束,Job 跟踪记录成功完成的 Pods 个数。
删除 Job 的操作会清除所创建的全部 Pods。
1.2 Job 的创建
注意:
Job 的 restart 重启策略只能是:Never 或 OnFailure
parallelism : 一次并行的运行几个 Pod ,也就是同时创建几个 Pod 执行任务,默认为 1,不能超过 completions
completions : Job 结束需要成功运行的 Pod 个数,即状态为 Completed 的 Pod 数目
backoffLimit : 如果 Pod 失败,则重试几次
activeDeadlineSeconds : 限制 Pod 运行的时间,超出此时间,终止 Pod ,并且标记为失败
2。 通过命令行方式创建
-
- 可以利用 命令行的方式,生成 job 的yaml文件模板:
kubectl create job test --image=busybox --dry-run=client -o yaml -- date > test.yaml
1.3 Job 的失败
Job 必须要完成一次
如果 restart 策略设置为 Never
则不断生成新的 Pod 来执行 job 的工作,不会重启
如果 restart 策略设置为OnFailure
则会不断重启 Pod ,直到完成一次。
2. cronJob
2.1
CornJob,定时任务,与 Linux 的 crontab 类似:
创建周期性的、反复重复的任务
Cron Job 创建基于时间调度的 Jobs。
CronJob 对象就像 crontab (cron table) 文件中的一行。 用 Cron 格式进行编写, 并周期性地在给定的调度时间执行 Job。
注意:
所有 CronJob 的 schedule: 时间都是基于 kube-controller-manager 的时区
2.2
:
/var/spool/cron/ : 是每个用户包括 root 的 crontab 任务,每个任务以创建者的名字命名
/etc/crontab : 负责调度各种管理和维护任务。
/etc/cron.d/ : 用来存放任何要执行的crontab文件或脚本。
可以把脚本放在/etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly、/etc/cron.monthly目录中,让它每小时/天/星期、月执行一次。
corntab 命令的常用选项:
-e: (编辑工作表)-l: (列出工作表里的命令)-r: (删除工作作)
crontab -e进入当前用户的工作表编辑,是常见的 vim 界面。每行是一条命令。编辑格式:分 时 日 月 周 命令
其中:/ 表示每隔;* 表示所有;,表示列举;- 表示从a到b
例如:
3,15 8-11 */2 * * myCommand
2.3 cronJob 的创建
通过 命令行创建:
评论