k8s教程(20)-pod之定时任务

news2024/12/26 11:48:38

文章目录

  • 01 引言
  • 02 基本语法
  • 03 案例
  • 04 文末

01 引言

声明:本文为《Kubernetes权威指南:从Docker到Kubernetes实践全接触(第5版)》的读书笔记

Kubernetes从1.5版本开始增加了一种新类型的Job,即类似Linux Cron的定时任务Cron Job,下面看看如何定义和使用这种类型的Job

02 基本语法

首先,确保Kubernetes的版本为1.8及以上。

Cron Job的定时表达式基本上照搬了Linux Cron的表达式,格式如下:

Minutes Hours DayofMonth Month DayofWeek

其中每个域都可出现的字符如下。

描述
Minutes可出现“,” “-” “*” “/” 这4个字符,有效范围为0~59的整数
Hours可出现“,” “-” “%” “/” 这4个字符,有效范围为0~23的整数
DayofMonth可出现“,” “- “*” “/“ “?” “L” “W“ “C”这8个字符,有效范围 为1~31的整数
Month可出现“,” “-” “*” “/”这4个字符,有效范围为1~12的整数或JAN~DEC
DayofWeek可出现“,” “*” “/” “?” “L” “C” “#” 这8个字符,有效范围为1~7的整数或SUN~SAT1表示星期天,2表示星期一,以此类推

表达式中的特殊字符“*”“/”的含义如下:

  • *表示匹配该域的任意值,假如在Minutes域使用“*”,则表示每分钟都会触发事件
  • /表示从起始时间开始触发,然后每隔固定时间触发一次,例如在
    Minutes域设置为5/20,则意味着第1次触发在第5min时,接下来每20min触发一 次,将在第25min、第45min等时刻分别触发

03 案例

比如,我们要每隔1min执行一次任务,则Cron表达式如下:

 */1 * * * *

编写一个Cron Job的配置文件(cron.yaml):

apiversion: batch/vl beta 
kind: CronJob
metadata:
	name: hello
spec:
	schedule: "*/1 * * * *"
	jobTemplate:
		spec:
			template:
				spec:
					containers:
					- name:hello
					  image:busybox
					  args:
					  - /bin/sh
					  - -C
					  - date;echo Hello from the Kubernetes cluster restartPolicy:OnFailure

该例子定义了一个名为helloCron Job,任务每隔1min执行一次,运行的镜像是busybox,运行的命令是Shell脚本,脚本运行时会在控制台输出当前时间和字符串"Hello from the Kubernetes cluster".

接下来运行kubectl create命令完成创建:

$ kubectl create -f cron.yaml 

cronjob "hello"created

然后每隔1min运行kubectl get cronjob hello查看任务状态,发现的确每分钟调度了一次:
在这里插入图片描述
还可以通过查找Cron Job对应的容器,验证每隔1min产生一个容器的事实:

在这里插入图片描述
查看任意一个容器的日志,结果如下:
在这里插入图片描述
运行下面的命令,可以更直观地了解Cron Job定期触发任务执行的历史和现状:
在这里插入图片描述


Kubernetes1.9版本后,kubectl命令增加了别名cj来表示cronjob,同时 kubectl set image/env命令也可以作用在CronJob对象上。

04 文末

本文主要讲解pod的定时任务调度,希望能帮助到大家,谢谢大家的阅读,本文完!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/111485.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringMVC、SSM整合

SpringMVC的工作原理(底层Servlet的工作流程) DispatcherServletHandlerMapping ,返回值 HandlerExecutionChainHandlerAdapterViewResolverView ~~老版本(过去式) 一、搭建springmvc 第一步:配置打包…

互联网行业逐步回暖!就业显示有74%学员跨专业学编程!

三年以来,居家办公、隔离等影响已深入每个人的生活。就业形势承受着巨大的压力,同时就业环境也发生巨大变化,越来越多的人都面临转行! 达妹被问到最多的问题是: 跨专业学编程的疑虑 非科班出身零基础能学会编程吗? 数…

程序人生:起薪13k,兜兜转转还得是软件测试

很多人一聊到IT教育培训第一反应就是:为什么要报班呢,网上大把资源它不香吗?自己学一学不就出来找工作了吗?还花这种冤枉钱? 小编作为从业人员认真地说,进入IT行业虽然不是特别难,但也没有这么…

English Learning - L1-6 从此口语变得简约(下)2022.12.22 周四

English Learning - L1-6 从此口语变得简约(下)2022.12.22 周四引言6.2.2 分词非谓语动词作后置定语的三种被动结构1. to be done 将来的动作2. being done 正在进行的3. done 已经完成的6.2.3 分词形容词挑错其它1. 形容词 名词 ed2. 数词 名词 ed答…

RiscV汇编基础学习

文章目录一、基础概念指令集---指示计算机执行某种操作的命令,是计算机运行的最小功能单位。复杂指令集CISC(如x86)和精简指令集RISC(如arm、riscV)---两种指令集的优化设计方向RiscV---一个基于精简指令集RISC原则的开…

SQL注入渗透与攻防(七)之查询方式及报错注入

目录 SQL注入之查询方式 select 查询数据 delete 删除数据 insert 插入数据 update 更新数据 SQL注入 报错盲注 1.基于布尔的SQL盲注 - 逻辑判断 2.基于时间的SQL盲注 - 延时判断 3.基于报错的SQL盲注 - 报错回显(强制性报错 ) 案列演示 SQL注入…

移动设备的自动化测试工具,如何选型?

一、问题的提出 最近二两年来,一直在从事移动设备的自动化测试工作,可以说小有心得。但最近由于种种原因,面临着对移动设备的自动化测试工具的更换工作。所以,一个问题呈现在面前。我们需要为我们的项目选出一款新的自动化测试工…

最长上升子序列

基于最长上升子序列 LIS 求最长上升子序列有两种做法求最长上升子序列有两种做法求最长上升子序列有两种做法 一种是n2复杂度的线性dp一种是n^2复杂度的线性dp一种是n2复杂度的线性dp 另一种是O(nlogn)复杂度的贪心二分另一种是O(nlogn)复杂度的贪心二分另一种是O(nlogn)复杂度…

看BP英文文献生词记录

看BP英文文献生词记录 总的来说,该论文是在讲CAT和SAR的后向后向投影之间的联系与区别 acoustic imaging 原声成像 polychromatic 美 [pɒlɪkroʊ’mtɪk] 英 [pɒlɪkrəʊ’mtɪk] adj.多色的 illumination 美 [ɪˌlumɪˈneɪʃ(ə)n] 英 [ɪˌluːmɪˈne…

我国牛血清行业现状:FBS是最常用血清添加剂 但目前市场亟需规范化

根据观研报告网发布的《中国牛血清行业现状深度研究与投资前景分析报告(2022-2029年)》显示,牛血清是血清的一种,是一种浅黄色澄清、无溶血、无异物稍粘稠液体,内含有各种血浆蛋白、多肽、脂肪、碳水化合物、生长因子、…

15. 使用stunnel加密tcp数据传输

主题:使用stunnel加密隧道对tcp数据进行加密传输。 开发环境: 客户端: stunnel5 Win10服务端: stunnel5 Ununtu18.04(虚拟机) Qt5.9.9对于stunnel,前面博客有所提及,有兴趣可以自行观看,…

javaSE(包、封装、static用法、代码块)

1.包 (文件夹) 为了更好的管理类,把多个类收集在一起成为一组,称为软件包。 在Java中也引入了包,包是对类、接口等的封装机制的体现,是一种对类或者接口等的很好的组织方式,比如:一…

【细读JS忍者秘籍】深入生成器函数的底层原理

深入生成器函数的底层原理 分析执行上下文 生成器函数本质上还是一个_函数_,所以它的执行离不开 执行上下文 function* generator() {console.log("status1");yield "hello";console.log("status2");yield "world";}let…

Web入门开发【七】- 运行原理

欢迎来到霍大侠的小院,我们来学习Web入门开发的系列课程。 首先我们来了解下这个课程能学到什么? 1、你将可以掌握Web网站的开发全过程。 2、了解基础的HTML,CSS,JavaScript语言。 3、开发自己的第一个网站。 4、认识很多对编…

学到羊之Kafka

1 kafka 是啥 Kafka 是一款开源的消息引擎系统,用来实现解耦的异步式数据传递。即系统 A 发消息给到 消息引擎系统,系统 B 通过消息引擎系统读取 A 发送的消息,在大数据场景下,能达到削峰填谷的效果。 2 Kafka 术语 Kafka 中的分…

性能测试要学习哪些知识?全在这里了

基础:   完整的性能测试流程     需求-计划-方案-环境搭建-用例设计-数据准备-场景设计-脚本开发-脚本执行-结果分析-问题反馈-性能调优-结果报告   性能指标     TPS,QPS,RPS,HPS,RT,VU&#…

【Pandas入门教程】在Pandas中如何创建plots

在Pandas中如何创建plots 来源:Pandas官网:https://pandas.pydata.org/docs/getting_started/intro_tutorials/index.html 文章目录在Pandas中如何创建plots导包数据集准备【小结】导包 import pandas as pd import matplotlib.pyplot as plt数据集准备…

力扣(LeetCode)200. 岛屿数量(C++)

深度优先遍历 求连通块数量。可以遍历所有格子,当格子是岛屿,对岛屿深度优先遍历,找到整个岛,并且将遍历的岛屿标记,以免重复遍历,或递归死循环。标记可以使用状态数组,也可以修改格子的值。本…

SQL注入渗透与攻防(十)之加解密注入和堆叠注入

目录 SQL注入之加解密注入 案列演示 SQL注入之堆叠注入 案列演示 SQL注入之加解密注入 Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。 案列演示 这里我们拿sql-libs的第二十一关来进行演…

学习TrustZone可以参考的资料

最近看到了一篇学习资料分享的,感觉可以转过来做个记录,除去前辈分享的资料以外,我还觉得ATF的源码里面的DOC目录下的资料也是很不错的,起码可以让你对BL31有个比较不错的认识。当然那个有点太细节了。 最近看PSA安全技术交流微信…