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 的创建
通过 命令行创建:
评论