研发工程师玩转Kubernetes——定时任务

news2025/1/13 15:52:18

定时任务是指可以制定周期的任务,比如每周二0点1分执行一次。在《研发工程师玩转Kubernetes——非定时任务》中,我们介绍了单次执行的任务。现在我们只要对其清单稍作修改,就可以实现定时任务。

# wrk_cronjob.yaml
apiVersion: batch/v1
kind: CronJob
metadata:
  name: wrk-cronjob
spec:
  schedule: "0/1 * * * *"
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: wrk
            image: localhost:32000/wrk:v1
            command: ["wrk", "-t20", "-c20",  "-d30", "http://192.168.137.248:30000"]
          restartPolicy: Never

和单次任务清单相比,主要的修改点是:新增了spec.schedule字段。它用于描述周期。
在这里插入图片描述
可以见得,我们可以控制的最短周期是分钟。
在表达式中,*表示”所有”。比如:

  • *****表示:每分钟、每小时、每天、每月和每周的每天,直白点说就是每分钟执行一次。
  • 1**** 表示每月每天每小时的1分钟时执行一次。
  • 1 22 30 5 *表示每年的5月30日22时1分执行一次。
  • 1 22 * * 2表示每个星期2的22时1分执行一次。
    除了指定时间执行,还可以指定周期。即用/表示切分周期。比如:
  • */2 * * * *表示每两分钟执行一次。

我们还可以使用https://crontab.guru/来查看表达式的表意。
比如例子中的*/1 * * * *表达的是每一分钟执行一次。
我们使用下面指令创建cronjob。

 kubectl create -f wrk_cronjob.yaml

cronjob.batch/wrk-cronjob created

可以看到每隔一分钟,我们创建了一个Job;每个Job也创建了一个Pod
在这里插入图片描述
在这里插入图片描述
如果没有dashboard,可以使用命令查看。

kubectl get jobs.batch --watch
NAME                   COMPLETIONS   DURATION   AGE
wrk-cronjob-28090472   1/1           33s        3m21s
wrk-cronjob-28090473   1/1           33s        2m21s
kubectl get pod --watch
NAME                                      READY   STATUS      RESTARTS   AGE
simple-http-deployment-58dd5b649b-4p429   1/1     Running     0          5d13h
simple-http-deployment-58dd5b649b-pcnw9   1/1     Running     0          5d13h
wrk-cronjob-28090472-8snlv                0/1     Completed   0          39s
wrk-cronjob-28090473-ptbgg                0/1     Pending     0          0s
wrk-cronjob-28090473-ptbgg                0/1     Pending     0          0s
wrk-cronjob-28090473-ptbgg                0/1     ContainerCreating   0          0s
wrk-cronjob-28090473-ptbgg                0/1     ContainerCreating   0          0s
wrk-cronjob-28090473-ptbgg                1/1     Running             0          1s
wrk-cronjob-28090473-ptbgg                0/1     Completed           0          31s
wrk-cronjob-28090473-ptbgg                0/1     Completed           0          32s
wrk-cronjob-28090473-ptbgg                0/1     Completed           0          33s
wrk-cronjob-28090473-ptbgg                0/1     Completed           0          33s

如果我们希望CronJob创建的Job和Pod在执行结束后自动删除,可以给
spec.jobTemplate.spec.ttlSecondsAfterFinished设定一个值,例子如下:

# wrk_cronjob.yaml
apiVersion: batch/v1
kind: CronJob
metadata:
  name: wrk-cronjob
spec:
  schedule: "0/1 * * * *"
  jobTemplate:
    spec:
      ttlSecondsAfterFinished: 0
      template:
        spec:
          containers:
          - name: wrk
            image: localhost:32000/wrk:v1
            command: ["wrk", "-t20", "-c20",  "-d30", "http://192.168.137.248:30000"]
          restartPolicy: Never

我们可以通过下面指令删除CronJob,这样它创建的Job和Pod都会被删除。

kubectl delete cronjobs.batch wrk-cronjob 

cronjob.batch “wrk-cronjob” deleted

参考资料

  • https://kubernetes.io/zh-cn/docs/concepts/workloads/controllers/cron-jobs/
  • https://man.freebsd.org/cgi/man.cgi?crontab%285%29

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

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

相关文章

【论文阅读】SeaD: End-to-end Text-to-SQL Generation with Schema-aware Denoising

【论文阅读】SeaD: End-to-end Text-to-SQL Generation with Schema-aware Denoising 文章目录 【论文阅读】SeaD: End-to-end Text-to-SQL Generation with Schema-aware Denoising1. 来源2. 介绍3. 模型3.0 问题定义3.1 采样公式3.2 带指针的 Transformer3.3 模式感知去噪&am…

低代码平台或零代码平台靠谱吗?15 年的老程序员来给大家剖析一下

提到低代码平台或者零代码平台靠谱吗?咱们首先得先认识一下低代码和零代码平台。 一、什么是低代码开发平台呢? 低代码的含义是少写代码并不是不写代码,面向的用户群体还是编程人员,传统的快速开发平台、在线开发平台、OA办公系统…

Python中Pandas库中的DataFrame数据结构创建举例

Python中Pandas库的DataFrame数据结构创建举例 DataFrame的数据结构是Python数据分析中重要应用数据类型。本文将重点介绍DataFrame的创建。 1.DataFrame的创建 创建DataFrame的方法使用pandas.DataFrame,向该方法传入字典即可创建DataFrame。 传入的字典的key对应E…

【HAL库】STM32F407----CAN通信----过滤器配置

【HAL库】STM32F407----CAN通信----基本原理 【HAL库】STM32F407----CAN通信----电路图 【HAL库】STM32F407----CAN通信----中断详解 【HAL库】STM32CubeMX开发----STM32F407----CAN通信实验 一、STM32F407----CAN过滤器----简介 在CAN协议里,报文的标识符不代表节…

纯vue 获取usb串口,实现电子秤的对接

说明:解决生产上过秤重量手动输入出错问题 效果图: 一:代码部分 1、创建一个名字为seriaport.js文件(随便定义,为下面页面引入使用) export default class MySerialPort {constructor() {this.state {po…

超级干货!前端入门先学什么?前端自学路线分享!

各位同学,下午好~之前给大家分享了前端岗位的面试题,小源能看的出来,还是有不少同学想入行前端的!那除了会面试,还要有充足丰富的知识储备,这样才能拿下工作! 好程序员今天就给大家整理了一份前…

C++进阶 —— set

目录 一,set介绍 二,set使用 一,set介绍 set是按照特定次序存储元素的关联式容器,元素不可重复;set中的元素不能在容器中修改(元素总是const),但是可从容器中插入和删除它们;set中的元素总是按…

【Linux】进程间通信详解

环境:centos7.6,腾讯云服务器Linux文章都放在了专栏:【Linux】欢迎支持订阅 进程间通信介绍 什么是进程间通信? 进程间通信(Interprocess communication,简称IPC)就是让程序员能够协调不同的进…

【Apache 网页优化】

文章目录 一、Apahce 网页优化1、网页压缩2、网页缓存 二、Apachen的安全优化1、隐藏版本信息2、Apache 防盗链 一、Apahce 网页优化 1、网页压缩 1.检查是否安装 mod_deflate 模块 apachectl -t -D DUMP_MODULES | grep "deflate"2.如果没有安装mod_deflate 模块…

Java基础 流程控制语句

顺序结构 顺序结构就是程序从上到下逐行地执行。表达式语句都是顺序执行的。并且上一 行对某个变量的修改对下一行会产生影响。 public class StatementTest{public static void main(String[] args){int x 1;int y 2; System.out.println("x " x);System.out.p…

非科班自学一年心得,学弟学妹别瞎学了

大家好,我是帅地。 前两天我发了一篇亲学弟自学一年拿大厂 offer 的文章:非科班,帅地亲学弟自学一年拿到大厂offer了 不过那一篇只写了自己转行开发岗的心里变化, 这两天学弟又在知识星球发了一篇关于找工作的万字长文 说实话&…

ISO21434 项目网络安全管理

目录 一、概述 二、目标 三、输入 3.1 先决条件 3.2 进一步支持信息 四、要求和建议 4.1 网络安全责任 4.2 网络安全规划 4.3 裁剪 4.4 重用 4.5 非上下文组件 4.6 现成组件 4.7 网络安全案例(Cybersecurity case) 4.8 网络安全评估&#…

【惊叹】AI进步的速度太快,我们赶不上了?

文章目录 前言一、LoRA二、QLoRA1、环境准备2、推理就是直接 跑shscripts/generate.sh。3、前面的环境和数据都没问题了,运行scripts/generate.sh。 总结 前言 AI 领域的技术,真是隔一段时间就有一个新突破! 全民都能训练大模型的时代&…

TypeScript算法题实战——剑指 Offer篇(3)

随着TypeScript的流行,越来越多的开发者开始使用TypeScript来解决算法问题。 在本文中,我们将使用TypeScript来解决剑指offer的算法题。这些问题涵盖了各种各样的主题,包括数组、字符串、链表、树、排序和搜索等。我们将使用TypeScript的强类…

【MySQL高级篇笔记 (中-索引的数据结构) 】

此笔记为尚硅谷MySQL高级篇部分内容 目录 一、索引及其优缺点 1、索引概述 2、优点 3、缺点 二、InnoDB中索引的推演 1、设计索引 1.一个简单的索引设计方案 2.InnoDB中的索引方案 2、常见索引概念 1. 聚簇索引 2. 二级索引(辅助索引、非聚簇索引&#…

Node.js详解(一):基础知识

文章目录 一、Node.js介绍二、Node.js的优势三、Node.js的特点1、V8虚拟机2、事件驱动3、异步、非堵塞I/O 四、NodeJS带来的对系统瓶颈的解决方案1. 并发连接2. I/O阻塞 五、NodeJS的优缺点1、优点:2、缺点: 六、适合NodeJS的场景1、RESTful API2、统一W…

VMware、Ubuntu安装以及虚拟机复制粘贴问题

安装VMware 下载阿里云链接(16 pro):VMware https://www.aliyundrive.com/s/ot9dhPNdSwC 安装:选一下安装地址,一直下一步即可。(可能会要求重启电脑,重启即可) 然后点击“许可证”…

Java 高级应用-多线程-(四)FutureTask的介绍及使用

Java多线程之FutureTask的介绍及使用 FutureTask属于java.util.concurrent 包;FutureTask表示可取消的异步计算。FutureTask类提供了一个Future的基本实现 ,具有启动和取消计算的方法,查询计算是否完整,并检索计算结果。结果只能…

Camtasia2023试用版新功能介绍

Camtasia 2023在易用性更进一步,再一次降低了制作精美视频的门槛,下面看一看,Camtasia 2023有哪些的新功能!包括影像、音效、鼠标移动轨迹、解说声音等等内容的录制,并且软件还可以提供即时播放和编辑压缩的功能&#…

如何监控电动车充电桩能耗?

一 背景 随着新能源汽车的快速发展,像特斯拉、BYD、蔚来、小鹏和理想等品牌的电动汽车在我们的日常生活中越来越多了,可见电动汽车如今已逐渐被我们所认可了。同汽油车需要加油一样,电动汽车需要充电,如此一来,电动汽…