k8sCronJob控制器
CronJob用于管理job控制器资源的运行时间,job控制器定义的作业任务在其控制器资源创建之后便会立即执行,但cronjob可以以类似于linux操作系统的周期性任务作业计划的方式控制其运行时间点及重复运行的方式
cronjob对象支持使用的时间格式类似于crontab,略有不同的是,cronjob控制器在指定的时间点时,“?”和“*”的意义相同,都表示任何可用的有效值
一、创建cronjob对象
cronjob控制器的spec字段可嵌套使用以下字段:
jobTemplate:job控制器模板,用于为cronjob控制器生成job对象;必选字段
schedule:cron格式的作业调度运行时间点;必选字段
concurrencyPolicy:并发执行策略,可用值有Allow、Forbid和Replace,用于定义前一次作业运行尚未完成时是否以及如何运行后一次的作业
failedJobHistoryLimit:为失败的任务执行保留的历史记录数,默认为1
successfulJobHistoryLimit:为成功的任务执行保留的历史记录数,默认为3
startingDeadlineSeconds:因各种原因缺失执行作业的时间点所导致的启动作业错误的超时时长,会被计入错误历史记录
suspend:是否挂起后续的任务执行,默认为false,对运行中的作业不会产生影响
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: cronjob-example
spec:
schedule: "*/2 * * * *"
jobTemplate:
metadata:
labels:
app: mycronjob
spec:
containers:
- name: myjob
image: alpine
command:
- /bin/sh
- -c
- date; echo Hello from k8s cluster; sleep
restartPolicy: OnFailure
二、CronJob的控制机制
CronJob控制器以job控制器资源为其管控对象,并借助它管理pod资源对象。因此,要使用类似”kubectl get jobs -l app=*“的命令来查看cronjob控制器创建的job资源对象。不过,只有相关的job对象被调度执行时,此命令才能将其正常列出。可列出的job对象的数量取决于cronjob资源的spec.successfulJobsHistoryLimit的属性值,默认为3。
如果作业重复执行时指定的时间点较近,而作业执行时长跨过了其两次执行的时间长度,则会出现两个job对象同时存在的情形。有些job对象可能会存在无法或不能同时运行的情况,这个时候就要通过spec.concurrencyPolicy属性控制作业并存的机制,其默认值为Allow,即允许前后job,甚至属于同一个cronjob的更多job同时运行。其他两个可用值中,forbid用于禁止前后两个job同时运行,如果前一个尚未结束,后一个则不予启动(跳过),replace用于让后一个job取代前一个,即终止前一个并启动后一个。
k8sCronJob控制器的更多相关文章
- ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第二章:利用模型类创建视图、控制器和数据库
在这一章中,我们将直接进入项目,并且为产品和分类添加一些基本的模型类.我们将在Entity Framework的代码优先模式下,利用这些模型类创建一个数据库.我们还将学习如何在代码中创建数据库上下文类 ...
- ABP文档 - Mvc 控制器
文档目录 本节内容: 简介 AbpController基类 本地化 其它 过滤 异常处理和结果包装 审计日志 验证 授权 工作单元 反伪造 模型绑定器 简介 ABP通过nuget包Abp.Web.Mv ...
- 关于VS2015 ASP.NET MVC添加控制器的时候报错
调试环境:VS2015 数据库Mysql WIN10 在调试过程中出现类似下两图的同学们,注意啦. 其实也是在学习的过程中遇到这个问题的,找了很多资料都没有正面的解决添加控制器的时候报错的问题,还是 ...
- ASP.NET Core 中文文档 第四章 MVC(4.2)控制器操作的路由
原文:Routing to Controller Actions 作者:Ryan Nowak.Rick Anderson 翻译:娄宇(Lyrics) 校对:何镇汐.姚阿勇(Dr.Yao) ASP.NE ...
- ASP.NET Core 中文文档 第四章 MVC(4.5)测试控制器逻辑
原文: Testing Controller Logic 作者: Steve Smith 翻译: 姚阿勇(Dr.Yao) 校对: 高嵩(Jack) ASP.NET MVC 应用程序的控制器应当小巧并专 ...
- ASP.NET Core 中文文档 第四章 MVC(4.4)依赖注入和控制器
原文: Dependency Injection and Controllers 作者: Steve Smith 翻译: 刘浩杨 校对: 孟帅洋(书缘) ASP.NET Core MVC 控制器应通过 ...
- AngularJS 第四天----控制器
控制器的作用 今天和大家学习AngularJS中控制器方面的知识,本文会给出一些例子来说明如何使用AngularJS的控制器.在开始我们的例子之前,首先说说AngularJS控制器的作用.简单的来说A ...
- ASP.NET Web API 控制器执行过程(一)
ASP.NET Web API 控制器执行过程(一) 前言 前面两篇讲解了控制器的创建过程,只是从框架源码的角度去简单的了解,在控制器创建过后所执行的过程也是尤为重要的,本篇就来简单的说明一下控制器在 ...
- ASP.NET Web API 控制器创建过程(二)
ASP.NET Web API 控制器创建过程(二) 前言 本来这篇随笔应该是在上周就该写出来发布的,由于身体跟不上节奏感冒发烧有心无力,这种天气感冒发烧生不如死,也真正的体会到了什么叫病来如山倒,病 ...
随机推荐
- Windows-T
查看Windows系统版本号 同时按下Windows键和字母R键,然后输入winver就可以了 命令行运行计算器cmd-calc win10卸载XShell6报错1603 在运行里输入regedit打 ...
- python高级 之(四) --- 模块方法
模块 时间模块:time/datatime/calendar. 系统操作文件模块:os time模块 介绍 import time # 获取当前时间, 结果是存在时间元组中的.星期一是从0开始的 # ...
- 【VS开发】【DSP开发】浅谈Linux PCI设备驱动(二)
我们在 浅谈Linux PCI设备驱动(一)中(以下简称 浅谈(一) )介绍了PCI的配置寄存器组,而Linux PCI初始化就是使用了这些寄存器来进行的.后面我们会举个例子来说明Linux PCI设 ...
- Duilib的控件拖拽排序,支持跨容器拖拽(网易云信版本)
完整代码见:https://github.com/netease-im/NIM_Duilib_Framework/pull/151 核心代码(思路): appitem.h #pragma once # ...
- 【Python】【基础知识】【内置函数】【input的使用方法】
原英文帮助文档: input([prompt]) If the prompt argument is present, it is written to standard output without ...
- python-bioInfo-codes-2
1. _tkinter.TclError: no display name and no $DISPLAY environment variable 解决方案: import matplotlibma ...
- linux_文本编译使用命令
一:字符模式与shell命令 字符界面和图形界面 字符界面优点: 1):系统执行效率高,稳定性高,执行结果可直接返回 2):节省系统资源,对一个服务器至关重要 3):节省大量网络开销,大幅降低运行成本 ...
- python题
1.一行代码实现1--100之和 利用sum()函数求和 sum(range(1,101) 2.如何在一个函数内部修改全局变量 利用global 修改全局变量 3.列出5个python标准库 Pyth ...
- 26 Python模块之paramiko
paramiko模块提供了ssh及sft进行远程登录服务器执行命令和上传下载文件的功能.这是一个第三方的软件包,使用之前需要安装. 1. 基于用户名和密码的sshclient方式登录 #创建一个ssh ...
- 日志:slf4j+logback 的配置与使用
1. 常用日志组件和选择 java开发日志处理是发现和调试bug所 必不可少的,那么现在企业中常用的日志组件有哪些呢,JCL . JUL. SLF4j.Log4j. Log4j2 . Logbac ...