这里将介绍Kubernetes工作负载资源中的Job、CronJob
Job
对于RC、RS、DS等类型的资源,其会持续运行Pod永远不会达到完成状态,其Pod会在进程退出后重新启动。为此K8s提供一种Job类型的工作负载资源,以实现完成任务后就终止。具体地,Job会创建一个或多个Pod。Job跟踪记录成功完成的Pod个数,当数量达到指定的成功个数阈值时,Job即会结束。当Pod执行失败或所在节点发生故障时,Job会创建、启动新的Pod继续执行任务。此外Job还支持以并行的方式运行多个Pod
1 | # API组、版本 |
效果如下所示
CronJob
Job资源在被创建后会立即创建Pod来运行任务。而很多时候一些任务需要在特定时间内执行或按一定频率重复执行。例如备份、生成报告等。为此K8s中提供了CronJob资源来执行对周期性任务的执行。具体地,我们通过Cron表达式设置任务的执行周期。然后CronJob根据其计划编排,在每次该执行任务的时候会先创建Job资源。然后Job资源再根据Pod模板创建相应的Pod来执行任务
1 | ┌───────────── 分钟 (0 - 59) |
配置文件如下所示
1 | # API组、版本 |
效果如下所示
参考文献
- Kubernetes in Action中文版 Marko Luksa著
- 深入剖析Kubernetes 张磊著