在进行任务自动化的时候,Hadoop生态中有Oozie可以用来管理workflow,但是如果我们的任务是通过pod部署在了kubernetes上的话,我们就可以利用cronJob来进行job的定时与周期性的运行。

CronJob是用来管理基于时间的Job,即:

1     在给定的时间点运行一次Job

2     周期性的在给定的时间点运行

其中指定周期的字段为spec.schedule,指定Job的字段为spec.jobTemplate,这两个字段也是必选字段,可以在yaml文件中定义。

CronJob的启动条件:

在k8s 1.8以及更高的版本中的环境中,API server要求的版本为apiVersion: batch/v1beta1,但是这个一般是默认的。当然了,对于之前的版本也可以利用--runtime-config=batch/v2alpha1=true来修改,然后重启API server服务。

运行过程:

我们利用官方的demo,其中下面是cronjob.yaml:

主要功能是:每分钟创建一个job,这个job的功能就是输出Hello World

apiVersion: batch/v1beta1
kind: CronJob
metadata:name: test
spec:schedule: "*/1 * * * *"jobTemplate:spec:template:spec:containers:- name: testimage: docker.hobot.cc/library/centos:7.4args:- /bin/sh- -c- echo Hello WorldrestartPolicy: OnFailure

创建cronJob:

查看test pods的创建状态:

在这里每一个任务都是输出一个hello world之后job就结束了,所以CronJob会自动清理结束的任务。

CronJob在每次调度运行的周期内会出现大概创建一个Job的情况,就是可能创建一个,也有可能创建多个,或者一个都不创建,就是一种大概的情况。K8S官方正在避免这种事情发生。

如果startingDeadlineSeconds(启动Job的期限:如果在这个期限中没有被调度起来,那么错过时间的Job就认为是失败的)设置的值较大,并且concurrencyPolicy(是否可以并行,就是当上一个job还没有启动成功的时候下一个是否可以并行启动,默认是可以的)设置可以并行,那么任务就每次至少启动一个。一般情况下需要将startingDeadlineSeconds设置较大或者默认,这样不会导致任务创建不出来。

删除CronJob:

删除的时候,会终止正在创建以及结束的Job,运行中的就不会被删除。

Crontab的基本格式

<分钟> <小时> <日> <月份> <星期> <命令>

  • 分钟 值从 0 到 59.
  • 小时 值从 0 到 23.
  •  值从 1 到 31.
  •  值从 1 到 12.
  • 星期 值从 0 到 6, 0 代表星期日

多个时间可以用逗号隔开,范围可以用连字符给出,*可以作为通配符。空格用来分开字段。

kubernetes之CronJob介绍相关推荐

  1. Kubernetes中StatefulSet介绍

    原文链接:Kubernetes中StatefulSet介绍 StatefulSet 是Kubernetes1.9版本中稳定的特性,本文使用的环境为 Kubernetes 1.11.如何搭建环境可以参考 ...

  2. Kubernetes(K8s)Events介绍(上)

    Kubernetes Events虽不常被提起,却意义非凡.它存储在Etcd里,记录了集群运行所遇到的各种大事件.本系列文章将一步一步地揭开Kubernetes Events的神秘面纱. 师出有名 前 ...

  3. Kubernetes 探针使用介绍

    Kubernetes 探针使用介绍 一.基本介绍 二.K8s 探针使用介绍 一.基本介绍 当我们在 K8s 上运行应用时,应用是否运行正常这是我们比较关心的,但是如果我们只是通过查看应用的运行状态,这 ...

  4. kubernetes各组件介绍

    文章目录 一. kubernetes 是什么 1. 基础架构图 2. kubernetes 各组件介绍 2.1 master 组件 :one: Kubernetes API Server(kube-a ...

  5. Kubernetes 核心概念介绍

    云计算.容器化以及容器编排是 DevOps 中最重要的发展趋势,无论你是数据科学家.软件开发者还是产品经理,了解 Docker 和 Kubernetes 的基本概念总是有好处的,二者可以帮助你与他人协 ...

  6. kubernetes之Cronjob应用和踩坑

    Cron Job 是什么? Cron Job 管理基于时间的 job,即: 在给定时间点只运行一次 在给定时间点周期性地运行 一个 CronJob 对象类似于 crontab (cron table) ...

  7. Serverless Kubernetes 容器服务介绍

    作者 | 张维 阿里巴巴高级技术专家 导读:Serverless Kubernetes 是以容器和 kubernetes 为基础的 Serverless 服务,它提供了一种简单易用.极致弹性.最优成本 ...

  8. kubernetes dev client-go 介绍

    文章目录 1. 简介 2. Setup 3. 连接 API Server 4. 创建一个clientset 5. 获取集群的PVC列表 6. 监听集群中pvc 6.1 启动监听功能 6.2 循环事件 ...

  9. 容器云系列之Kubernetes基本架构介绍

    K8S是开源的容器编排引擎,支持自动化部署.大规模可伸缩.应用容器化管理,有助于运维人员进行资源的自动化管理和利用率最大化.本文是基于张建锋老师容器技术培训关于K8S的有关总结和整理,以加深学习了解. ...

最新文章

  1. 2013年7月27日杂记
  2. ksu7对讲机调频软件_科普 | 数字对讲机的群呼功能原理是什么?你了解多少?...
  3. linux私有组信息存放在哪,【Linux】Linux私有组,主要组和附加组
  4. ld 用法:gcc 过程最后一步-链接
  5. AD域环境的搭建 基于Server 2008 R2
  6. iPhone SplitViewController
  7. js html 单引号,JS 和 HTML 中的单引号与双引号
  8. Netlink 0003 -- Netlink动手实践
  9. 区块链java项目_JAVA区块链项目实战(示例代码)
  10. 使用POI实现报表打印功能
  11. 计算机技术比武优秀获奖感言,教学大赛获奖感言4篇
  12. MySQL实战第二十二讲-MySQL有哪些“饮鸩止渴”提高性能的方法?
  13. php风格模板,phpwind冷色调整站风格模板
  14. 人物画像————圆球转动效果
  15. android bea拷贝,从Android开发中学到一些东西
  16. android网购功能,网购Android App购物车点击动画实现详解
  17. [VCS]filelist.list的做法
  18. 一篇文章彻底弄懂零拷贝底层原理
  19. mysql 多表 结构相同 查询
  20. 学校招聘行政老师的计算机能力测试,【】计算机教师招聘试题(25页)-原创力文档...

热门文章

  1. 招聘时那些看似高大上的要求,其实说的是这个(大白话+实体吐槽版)
  2. 热管理设计Taitherm (ex-Radtherm) v12.1.1 Win64 Linux64 2CD
  3. Within-sample variability-invariant loss for robust speaker recognition under noisy environments
  4. 如何分析个股基本面_个股的基本面分析_如何看个股的基本面
  5. Python3菜鸟教程(5):list的基本操作和技巧
  6. golang 获取一天前,一个月前,一年前的日期
  7. Spring Boot实现 RabbitMQ教程【1】
  8. 战争游戏红龙修改手册
  9. Javascript--04 JavaScript的内部对象
  10. pythongui学生管理系统不需要链接数据库的完整代码_毕设——Python实现带GUI和连接数据库的图书管理系统!...