【K8s】专题四(7):Kubernetes 控制器之 CronJob

news2024/12/27 5:45:53

以下内容均来自个人笔记并重新梳理,如有错误欢迎指正!如果对您有帮助,烦请点赞、关注、转发!欢迎扫码关注个人公众号!

公众号二维码


目录

一、基本介绍

二、工作原理

三、相关特性

四、资源清单(示例)

五、常用操作


一、基本介绍

CronJob 控制器是 Kubernetes 中用于周期性运行计划任务的 API 对象,它负责在指定时间执行一次性任务,相当于在 Job 之上增加了基于时间的调度配置。

CronJob 通常用于部署定时备份、定时检查、定时同步、定时报告等周期性任务。


二、工作原理
  • 定义对象:用户创建一个 CronJob 对象,指定 Pod 模板和其他配置选项
  • 监控 Job:Kubernetes 的调度器会监控 CronJob 对象的状态
  • 生成 Job:根据 CronJob 定义的时间表,调度器在预定的时间创建 Job 对象
  • 执行任务:Kubernetes 根据 Job 模板创建 Pod,并开始执行任务
  • 监控 Pod:Kubernetes 监控 Pod 的状态,确保任务成功完成
  • 记录历史:由 CronJob 创建的 Job 都会被记录,包括成功和失败的 Job
  • 清理资源:完成的 Job 及对应的 Pod 会根据 CronJob 的配置进行清理


三、相关特性
  • 定时调度:支持复杂的时间表,可以精确控制任务的执行时间
  • 并发策略:可以设置并发策略,如允许多个 Job 并发执行,或在新 Job 开始前终止旧的 Job
  • 失败重试:可以配置重试策略,当 Job 失败时,CronJob 可以重新创建 Job 来尝试完成任务
  • 历史记录:CronJob 会保留成功和失败 Job 的历史记录,便于追踪和分析
  • 暂停和恢复:可以暂停 CronJob,暂停后不会生成新的 Job,也可以恢复 CronJob 继续生成 Job
  • 时区设置:可以设置 CronJob 的时区,以适应不同地区的时区需求
  • Suspend:可以挂起 Job 的执行,直到再次被激活
  • 死信队列:对于失败的 Job,可以配置死信队列来处理这些失败的任务


四、资源清单(示例)
# cronjob.yaml
apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: demo-cronjob
spec:
  schedule: 10 00 * * *
  successfulJobsHistoryLimit: 3
  jobTemplate:
    spec:
      template:
        spec:
          restartPolicy: OnFailure
          containers:
          - name: demo-container
          image: busybox
          command:
          - sh
          - -c
          - for i in 1 2 3 4 5 6;do echo $i;done

🔔 schedule:指定计划任务执行时间,格式为:分 时 日 月 周几
🔔 successfulJobsHistoryLimit:指定 Completed 状态的 Pod 保留数量

上述 cronjob.yaml 文件定义了一个名为 demo-cronjob 的 CronJob 对象,每天 00:10 新建一个 Pod,Pod 包含一个名为 demo-container 的容器,该容器使用 busybox 镜像,启动后执行一次性任务(打印数字 1 ~ 6)。

说明:可以通过以下命令查看 CronJob 资源清单支持定义的内容

kubectl explain cronjob --recursive


五、常用操作

1、创建 CronJob

kubectl create -f cronjob.yaml
或
kubectl apply -f cronjob.yaml

2、查看 CronJob

# 查看实例列表
kubetcl get cronjob
 
# 查看详细信息
kubectl describe cronjob demo-cronjob

3、删除 CronJob

# 方式一:命令行
kubectl delete cronjob demo-cronjob
 
# 方式二:资源清单
kubectl delete -f cronjob.yaml

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

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

相关文章

一图文看懂oracle数据库的安装与卸载

oracle数据库安装与卸载 1、卸载 对于已经安装过oracle数据库的主机,一般卸载起来比较麻烦,需要卸载大致四个地方,分别是关闭应用的服务、删除相关注册表、删除路径以及删除安装的位置,最后就需要重启主机。 前提,在…

从零开始:如何在直播应用中集成美颜SDK和美颜插件

本篇文章,小编将详细介绍如何从零开始,在直播应用中集成美颜SDK和美颜插件。 一、准备工作 确定需求 在开始集成美颜SDK之前,首先需要明确需求。考虑以下几个问题: 直播应用的目标用户是谁? 需要集成哪些美颜功能&…

图的相关种类

目录 数据类型 存储结构 邻接矩阵表示法 无向图 邻接矩阵表示 有向图 网 实现 邻接矩阵表示 存储结构 创建无向图 优点 缺点 邻接表法表示 表示无向图 表示有向图 存储结构 无向网 特点 十字链表与多重表 十字链表 存储结构 多重表 存储结构 数据类型 存…

IDEA使用阿里通义灵码插件

在这个AI火热的时代,纯手工写代码已经有点out了,使用AI插件可以帮我们快速写代码,起码能省去写那些简单、重复性的代码,大大提高编码效率,在这里我推荐使用阿里的通义灵码 注册安装 安装注册好后,打开我们…

室内外融合定位是如何做到成为定位领域的新宠

在信息化高速发展的今天,定位技术已成为人们生活和工作中不可或缺的一部分。随着物联网、智慧城市等领域的蓬勃发展,传统的单一定位方式已无法满足复杂多变的环境需求。在这样的背景下,室内外融合定位技术应运而生,以其独特的优势…

海南聚广众达电子商务咨询有限公司正规吗?

在数字经济的浪潮下,海南聚广众达电子商务咨询有限公司凭借其对抖音电商领域的深刻洞察和专业服务,成为引领行业新风尚的佼佼者。公司不仅具备丰富的电商运营经验,更有一支高效、创新的团队,致力于为品牌商家提供全方位的电商解决…

《数学学习与研究》投稿难度大吗?

《数学学习与研究》杂志的投稿难度相对适中。 一方面,它作为一本有一定影响力的数学专业期刊,对稿件的质量有一定要求。论文需要具备一定的创新性、科学性和逻辑性,研究内容要具有一定的价值和深度。 另一方面,与一些核心期刊相…

小红书笔记怎么发浏览量高?建议收藏

如何让自己的小红书笔记脱颖而出,赢得高浏览量?本文伯乐网络传媒将从内容编辑、提高曝光度方面,为你揭秘小红书笔记创作的技巧。 一、文字内容编辑技巧 1.优化笔记标题和封面 (1)标题关键词设置 一个好的标题决定了…

国密SSL证书与传统SSL证书的区别

随着网络技术的飞速发展,网络安全问题日益凸显。在保护数据传输安全、防止数据泄露和篡改方面,SSL证书扮演着至关重要的角色。国密SSL证书作为一种遵循国家标准技术规范并参考国际标准的SSL证书产品,近年来受到越来越多的关注。本文将详细介绍…

13. ESP32-HTTPClient(Arduino)

使用ESP32 Arduino框架的HTTPClient库进行HTTP请求 在ESP32开发里,网络通信是挺重要的一部分,你可能需要从服务器拿数据啊,或者把传感器数据发到云端什么的。不过别担心,ESP32 Arduino框架给我们提供了HTTPClient库,让…

电子纸在日化行业的全新应用

电子纸在日化行业的全新应用 项目背景 在一日化龙头企业他们的洗衣粉产线在AGV小车取料到运输到产品包装工序时,因为取料粉车无明显区分标识,但是产品系列有十大类。在未采用晨控电子纸之前现场采用一个转盘分为十个区域,取料工序上方会有一…

2024-06-06 问AI: 在深度学习中,什么是欧几里德长度?

文心一言 在深度学习中,欧几里德长度(也称为欧几里得距离或欧氏距离)是一个常用的概念,它衡量的是在多维空间中两个点之间的真实距离,或者说是向量的自然长度(即该点到原点的距离)。以下是关于…

企业该如何选择GPU云服务器配置?

无论是个人开发者还是企业用户,对于如何选购最佳的云服务器配置,都是比较头疼与纠结的。因为GPU云服务器的配置众多,各种组合有各自优势与用途,很难一下子做出决策。接下来,我们来简单分析下各配置应该怎么选购。 1、地…

Linux C语言:指针和指针变量

一、指针的作用 使程序简洁、紧凑、高效有效地表示复杂的数据结构动态分配内存能直接访问硬件能够方便的处理字符串得到多于一个的函数返回值 二、内存、地址和变量 1、内存地址 2、变量和地址 1)变量用来在程序中保存数据 比如: int k 58; //声明一个int变…

Dockershim 与 Containerd:两种容器运行时的故事

在不断发展的容器化世界中,两个关键组件经常被混淆:Dockershim 和 containerd。虽然它们在管理容器方面都发挥着重要作用,但它们的用途却截然不同。本文深入探讨了它们的功能,深入探讨了 Dockershim 和 containerd 之间的区别。 揭…

【前端】响应式布局笔记——自适应布局

自适应布局 自适应布局是不同设备对应不同的html(局部自适应),通过判断设备的类型或控制局部的变化。 1、获取设备是移动端还是pc端 // 获取设备的信息let userAgent navigator.userAgent.toLowerCase();// 使用正则表达式来判断类型let device /ipad|iphone|m…

读书笔记分享

1.绝大多数父母都是爱孩子的,可他们却不是称职的父母。世界上任何职业都要培训、考核、竞争上岗,唯有“父母”这个职业是没有这些程序,只要生了小孩,就是天经地义的父母。 2.由于自身工作特点,“白领”们的部分器官和…

【Java数据结构】详解Stack与Queue(四)

🔒文章目录: 1.❤️❤️前言~🥳🎉🎉🎉 2.用队列实现栈 3.用栈实现队列 4.栈和队列存放null 5.总结 1.❤️❤️前言~🥳🎉🎉🎉 Hello, Hello~ 亲爱的朋友…

计算机网络-NAT配置与ACL

目录 一、ACL 1、ACL概述 2、ACL的作用 3、ACL的分类 4、ACL的配置格式 二、NAT 1、NAT概述 2、NAT分类 2.1 、 静态NAT 2.2 、 动态NAT 3、NAT的功能 4、NAT的工作原理 三、NAT配置 1、静态NAT配置 2、动态NAT配置 四、总结 一、ACL 1、ACL概述 ACL&#xff…

微服务框架下,因发送端与消费端的vhost不一致,导致rabbitmq出现严重的消息堆积

一、背景 在生产环境下,rabbitmq机器出现磁盘空间不足的报警,发现是某个队列的消息只有生产,迟迟没有消费。 可以得到的信息是: 队列queue是data_center_file_change_queue队列绑定的交换机是resourceChangeExchange&#xff0c…