常见类型的yaml文件如何编写?--kind: Job|CronJob

本次介绍两个关联度很高的类型,Job和CronJob。

Job基本说明

在 Kubernetes 中,Job 是一种用于运行一次性任务的资源对象。它用于确保在集群内部执行某个任务,即使任务运行失败或其中一个 Pod 发生故障时,也会进行重试。Job 可以保证任务的结束状态为成功(成功完成所有任务)或失败(任何一个任务失败)。

Job 的主要特点包括:

  1. 一次性任务:Job 用于运行一次性任务,即执行一次特定任务后就完成了它的工作。与其他资源对象(如 Deployment)不同,Job 不会持续运行,而是等待任务完成后进行清理。

  2. 并行任务:Job 可以指定要并行运行多少个任务。例如,可以创建一个 Job,并指定要同时运行 5 个 Pod 来执行任务,从而提高任务执行效率。

  3. 任务重试:如果某个 Pod 的任务运行失败,则 Kubernetes 会自动重新创建一个新的 Pod 来重试任务,直到成功完成任务为止。这有助于确保任务的可靠性。

  4. 完成状态:Job 的任务可以定义为成功完成或失败完成。如果所有的任务都成功完成,则 Job 的状态将被标记为成功。如果任何一个任务失败,则 Job 的状态将被标记为失败。

Job 使用一个或多个 Pod 来执行任务,并通过 Pod 的数量来决定任务的并行性。可以使用控制器(如 CronJob)来调度 Job 的运行时间,并可以使用 Pod 模板来定义 Job 中运行的任务。

Job基本样例

以下是 kind 类型为 Job 的 YAML 编写示例:

apiVersion: batch/v1
kind: Job
metadata:name: my-job
spec:template:spec:containers:- name: my-containerimage: my-imagecommand:- "echo"- "Hello, World!"restartPolicy: OnFailure

常见关键字说明

  • apiVersionbatch/v1,指定使用的 API 版本。
  • kindJob,定义资源类型为 Job。
  • metadata: 元数据,包括 Job 的名称。
  • spec: Job 的规范,包含以下关键字:
    • template: 定义 Job 中用于创建 Pod 的模板。
      • spec: Pod 的规范,与 Pod 的 YAML 定义相同。
      • spec.template.spec.containers: Pod 中的容器列表,定义要运行的容器和相关信息。
      • spec.template.spec.containers[].name: 容器的名称。
      • spec.template.spec.containers[].image: 容器的镜像。
      • spec.template.spec.containers[].command: 容器的命令和参数。
      • spec.template.spec.restartPolicy: Pod 中容器的重启策略,可选值为 AlwaysOnFailure 或 Never

以上示例展示了一个简单的 Job,它创建一个包含一个容器的 Pod,在容器中执行命令打印 “Hello, World!”。你可以根据实际需求来自定义和扩展。

扩展关键字及举例

除了上述提到的关键字,还有一些其他常用的关键字可以在 Job 的 YAML 中添加,以下是一些示例:

  • metadata.namespace: 指定 Job 所属的命名空间。
apiVersion: batch/v1
kind: Job
metadata:name: my-jobnamespace: my-namespace
spec:template:spec:# ...
  • spec.completions: 定义 Job 需要成功完成的 Pod 的个数,默认值为 1。
apiVersion: batch/v1
kind: Job
metadata:name: my-job
spec:completions: 2template:spec:# ...
  • spec.parallelism: 定义同时进行的 Pod 的最大数量,默认值为 1。
apiVersion: batch/v1
kind: Job
metadata:name: my-job
spec:parallelism: 3template:spec:# ...
  • spec.backoffLimit: 定义当 Job 失败并且达到重试次数上限时的行为,默认值为 6。
apiVersion: batch/v1
kind: Job
metadata:name: my-job
spec:backoffLimit: 3template:spec:# ...
  • spec.activeDeadlineSeconds: 定义 Job 的最长执行时间,超过此时间将被终止并认为是失败,默认值为 3600 秒。
apiVersion: batch/v1
kind: Job
metadata:name: my-job
spec:activeDeadlineSeconds: 1800template:spec:# ...
  • spec.ttlSecondsAfterFinished: 定义 Job 完成后保留的时间,默认值为 nil(保留 Job)。
apiVersion: batch/v1
kind: Job
metadata:name: my-job
spec:ttlSecondsAfterFinished: 3600template:spec:# ...

这些关键字可以根据实际需求来设置和调整 Job 的行为和配置,从而满足特定的业务需求。

CronJob基本说明

在 Kubernetes 中,CronJob 是一种用于定期运行任务的资源对象。它继承自 Kubernetes 的 Job 对象,可以按照 Cron 表达式指定的时间计划运行 Jobs。

CronJob 的特点包括:

  1. 定期执行:CronJob 可以按照 Cron 表达式指定的时间周期性地调度 Job 的运行。Cron 表达式语法可以很容易地指定要运行的时间和日期,例如每天 8 点运行任务或者每周五下午 5 点运行任务等。

  2. 任务运行:CronJob 创建 Job 对象来运行一次性任务。它们的表现就像执行单次任务的 Job。任务并行性可以通过设置 spec.parallelism 字段指定。

  3. 处理 Job 运行:CronJob 可以根据不同的策略,如 spec.concurrencyPolicy,处理 Job 运行和完成情况。CronJob 还会保存成功完成 Job 的历史纪录,以及保留失败 Job 的日志。

CronJob基本样例

kind 类型为 CronJob 和 Job 的 YAML 编写示例,以及常见关键字的说明:

  1. CronJob 的 YAML 示例:
apiVersion: batch/v1beta1
kind: CronJob
metadata:name: my-cronjob
spec:schedule: "*/1 * * * *"jobTemplate:spec:template:spec:containers:- name: my-containerimage: my-imagerestartPolicy: OnFailure

常见关键字说明

  • apiVersionbatch/v1beta1,指定使用的 API 版本。
  • kindCronJob,定义资源类型为 CronJob。
  • metadata: 元数据,包括 CronJob 的名称。
  • spec: CronJob 的规范,包含以下关键字:
    • schedule: 定义 CronJob 的调度规则。示例中的 */1 * * * * 表示每分钟执行一次。
    • jobTemplate: 定义生成的 Job 的模板。
      • spec: Job 的规范,与 Job 的 YAML 定义相同。

补充:Crontab表达式

Crontab的语法规则格式

Crontab规则由五个时间字段和一个命令字段组成,每个字段之间由空格或制表符分隔。

代表意义    分钟      小时    日期      月份     周      命令
数字范围    0~59    0~23    1~31    1~12    0~7    需要执行的命令

在这些时间字段中,您可以使用以下特殊字符:

  • 星号(*):表示匹配所有可能的值。例如,"*"在分钟字段中表示每分钟。
  • 逗号(,):用于指定多个值。例如,"1,3,5"在小时字段中表示1点、3点和5点。
  • 连字符(-):用于指定一个范围。例如,"10-15"在分钟字段中表示从10到15分钟。
  • 斜杠(/):用于指定一个步长。例如,"*/5"在分钟字段中表示每隔5分钟。
  • @符号:用于指定一些特定的预定义值,如"@reboot"表示在系统启动时执行任务。

参考

https://blog.csdn.net/m0_61452396/article/details/131270621

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

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

相关文章

CRM系统进行市场营销,这些功能可以派上用场。

现如今的企业想要做好营销,不仅仅依赖于一句玄之又玄的slogan亦或是电子邮件的狂轰乱炸。要想做好市场活动营销需要一个前提——那就是CRM管理系统发挥作用的地方。但CRM系统关于营销的功能太多了——对于不太了解的人来说很容易不知所措。那么,CRM系统做…

如何上传苹果ipa安装包?

目录 引言 摘要 第二步:打开appuploader工具 第二步:打开appuploader工具,第二步:打开appuploader工具 第五步:交付应用程序,在iTunes Connect中查看应用程序 总结 引言 在将应用程序上架到苹果应用…

DUET: Cross-Modal Semantic Grounding for Contrastive Zero-Shot Learning论文阅读

文章目录 摘要1.问题的提出引出当前研究的不足与问题属性不平衡问题属性共现问题 解决方案 2.数据集和模型构建数据集传统的零样本学习范式v.s. DUET学习范式DUET 模型总览属性级别对比学习正负样本解释: 3.结果分析VIT-based vision transformer encoder.消融研究消…

【XR806开发板试用】+ FreeRtos开发环境搭建

获取SDK SDK可以通过官网直接下载。 下载完成之后,通过gzip命令解压文件 gzip -d xr806_sdk.tar.gz 获取编译链工具 还是按照官网操作指南,下载 gcc-arm-none-eabi-8-2019-q3-update 下载之后进行解压,同理。 注意修改GCC路径&#xff0c…

既然所有ERP系统都很烂,那创业公司有没有机会?

既然所有ERP系统都烂,那创业公司有没机会? 得一点点把这问题捋顺了再回答—— 先说说“都很烂”这个判断是否准确谈谈国产ERP和国际ERP厂商,新创公司是否有优势?最后聊一下创业本身,如何创业、风险如何…… 一些人可能对传统的ERP系统感到…

初识 Elasticsearch 应用知识,一文读懂 Elasticsearch 知识文集(2)

🏆作者简介,普修罗双战士,一直追求不断学习和成长,在技术的道路上持续探索和实践。 🏆多年互联网行业从业经验,历任核心研发工程师,项目技术负责人。 🎉欢迎 👍点赞✍评论…

MySQL进阶篇(三) 索引

一、插入数据 1. insert (1)优化方案一,批量插入数据 Insert into tb_test values(1,Tom),(2,Cat),(3,Jerry);(2)优化方案二,手动控制事务 start transaction; insert into tb_test values(1,Tom),(2,Cat…

JS栈和堆:数据是如何存储的

JS栈和堆:数据是如何存储的 背景JavaScript 是什么类型的语言JavaScript 的数据类型内存空间栈空间和堆空间再谈闭包 背景 JS有多种数据类型:数字型,字符串型,数组型等,虽然 JavaScript 并不需要直接去管理内存&#…

Apache ActiveMQ RCE CNVD-2023-69477 CVE-2023-46604

漏洞简介 Apache ActiveMQ官方发布新版本,修复了一个远程代码执行漏洞,攻击者可构造恶意请求通过Apache ActiveMQ的61616端口发送恶意数据导致远程代码执行,从而完全控制Apache ActiveMQ服务器。 影响版本 Apache ActiveMQ 5.18.0 before …

linux kernel:devres模块架构分析

参考文档: https://www.kernel.org/doc/html/latest/driver-api/driver-model/devres.html https://www.cnblogs.com/sammei/p/3498052.html devres in linux driver devres: Managed Device Resource device resource managementdevres_alloc()动态申请内存分配…

好包不等待:用 pnpm 加速你的项目依赖

欢迎来到我的博客,代码的世界里,每一行都是一个故事 好包不等待:用 pnpm 加速你的项目依赖 前言什么是pnpm背景和诞生原因:与传统 npm 安装方式的区别: 基础用法安装依赖:卸载依赖:安装全局依赖…

2024百元蓝牙耳机测评推荐,百元超强的开放式蓝牙耳机合集

现在的蓝牙耳机市场真的是太卷了,各种品牌、各种型号让人挑得眼花缭乱,但你知道吗?其实在百元价位里也有很多好货。今天,我就来给大家好好测评几款2024年的百元级蓝牙耳机,看看哪些是真正的性价比之王,开放…

基于JAVA的康复中心管理系统 开源项目

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 普通用户模块2.2 护工模块2.3 管理员模块 三、系统展示四、核心代码4.1 查询康复护理4.2 新增康复训练4.3 查询房间4.4 查询来访4.5 新增用药 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpringBootMySQL的康复中…

小微企业适用什么样的CRM系统?CRM选型有哪些技巧?

小型企业主的日子着实不好过,从营销和销售到客户支持和保留,这些基本都要亲力亲为,才能确保将客户放在首位。如果您要是一个小企业主,那么相信您能懂这个感觉,恨不得自己长出八只手,才能让一切井井有条——…

Wordpress网站开发问题解决——除了主页之外的所有页面都是“找不到页面内容”(修复记录)

一条纯经验操作 引言慌火上浇油后台查看 解决之路结尾 引言 最近 阿里云老是提醒我边缘计算机控制升级 我自己建立了一个网站,用的就是阿里云的万网服务器 所以 我去看看 结果跟我没什么关系 本以为就这么愉快地结束了 没想到 我建立的网站就只能打开主页 其他页…

羊奶加红枣,女性必备的加法!

羊奶加红枣,女性必备的加法! 在当今社会,女性健康备受关注。而羊奶和红枣作为常见的食材,以其独特的营养价值备受追捧。不少人认为,羊奶里面加红枣对女生有很大的帮助。那么,到底羊奶加红枣对女性健康有哪…

06.构建大型语言模型步骤

在本章中,我们为理解LLMs奠定了基础。在本书的其余部分,我们将从头开始编写一个代码。我们将以 GPT 背后的基本思想为蓝图,分三个阶段解决这个问题,如图 1.9 所示。 图 1.9 本书中介绍的构建LLMs阶段包括实现LLM架构和数据准备过程、预训练以创建基础模型,以及微调基础模…

无重复字符的最长字串

题目 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。 示例 示例 1: 输入: s "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2: 输入: s "bbbbb" 输出: 1 解…

PMP报考流程?

项目管理相关证书,PMP是一个不错的选择,尤其是小白朋友。 PMP 是项目管理的一个入门证书,理论知识很全面,涵盖了项目管理的全流程,可作为日常工具参考书、完全小白的可以先考一个PMP学好理论,再考一个PRIN…

用友U8流程审批效率-SQLServer+SSRS

文章目录 @[TOC]1、 需求及效果1.1 需求1.2 效果2、 思路及SQL语句3、实现折叠明细表4、结语1、 需求及效果 1.1 需求 想要查看U8的审批流程,查看流程在哪个节点或人停留的时间,这个单据整个流程走下来需要的时间。可以更加直观方便的查看审批效率 1.2 效果 采用了SSRS上…