常见类型的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.hqwc.cn/news/339417.html

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

相关文章

【设计模式-6】建造者模式的实现与框架中的应用

建造者模式又被成为生成器模式,是一种使用频率比较低,相对复杂的创建型模式,在很多源码框架中可以看到建造者的使用场景,稍后我们会在本文末尾展示几个框架的使用案例。  建造者模式所构造的对象通常是比较复杂而且庞大的&#x…

使用requests库测试post请求 操作流程

第一步 谷歌f12或其他抓包工具抓包,这里随机抓一个post请求 url:https://eva2.csdn.net/v3/06981375190026432f77c01bfca33e32/lts/groups/dadde766-b087-42da-8e67-d2499a520ee7/streams/a0119567-bf91-4314-ab75-f683ba6c0c0a/logs 第二步 导包 impo…

springboot邮件发送

一、 二、易出错的点 1. 关于 对于我们服务器上的静态资源,比如下面这张图片,是可以直接访问到的。 因此,我们要想在theamleaf中达到同样的效果,就要使用。 MimeMessage是JavaMail API中的一个类,用于表示电子邮件消…

企业的 Android 移动设备管理 (MDM) 解决方案

移动设备管理可帮助您在不影响最终用户体验的情况下,通过无线方式管理和保护组织的移动设备群,现代 MDM 解决方案还可以控制 App、内容和安全性,因此员工可以毫无顾虑地在托管设备上工作。移动设备管理软件可有效管理个人设备上的公司空间。M…

2024年【广东省安全员C证第四批(专职安全生产管理人员)】考试报名及广东省安全员C证第四批(专职安全生产管理人员)操作证考试

题库来源:安全生产模拟考试一点通公众号小程序 2024年【广东省安全员C证第四批(专职安全生产管理人员)】考试报名及广东省安全员C证第四批(专职安全生产管理人员)操作证考试,包含广东省安全员C证第四批&am…

SIT1050ISO具有隔离功能,1Mbps,高速 CAN 总线收发器

➢ 完全兼容“ ISO 11898 ”标准; ➢ 内置过温保护; ➢ 100kV/s 瞬态抗扰度; ➢ 显性超时功能; ➢ -40V 至 40V 的总线故障保护; ➢ I/O 电压范围支持 3.3V 和 5V MCU ; ➢ 低环路延迟…

如何在 Windows10 下运行 Tensorflow 的目标检测?

看过很多博主通过 Object Detection 实现了一些皮卡丘捕捉,二维码检测等诸多特定项的目标检测。而我跟着他们的案例来运行的时候,不是 Tensorflow 版本冲突,就是缺少什么包,还有是运行官方 object_detection_tutorial 不展示图片等…

RIS 辅助无线网络:基于模型、启发式和机器学习の优化方法

目录 abstractintroduction相关研究BACKGROUND AND PROBLEM FORMULATIONS FOR OPTIMIZING RIS-AIDED WIRELESS NETWORKSA 优化RIS-AIDED无线网络的背景和问题公式RIS操作原则:RIS控制:RIS部署 B 总速率/容量最大化C 功率最小化D 能源效率最大化E 用户公平…

Springboot的配置文件详解:从入门到精通,解读配置文件的奇妙世界

目录 1、前言 2、介绍 2.1 Springboot配置文件的作用 2.2 Springboot支持的配置文件类型 2.3 Springboot配置文件的加载顺序 3、YAML配置文件 3.1 YAML基本语法介绍 3.2 YAML中的基本数据类型 3.3 YAML中的复合数据类型 3.4 YAML中的配置属性 3.5 YAML中的多环境配置…

C#,入门教程(14)——字符串与其他数据类型的转换

上一篇: C#,入门教程(13)——字符(char)及字符串(string)的基础知识https://blog.csdn.net/beijinghorn/article/details/123928151 数据只有可视化才能更好地体现其价值,因而 string 与 image…

Object.keys()

目录 1、Object.keys() 是什么? 2、Object.keys(obj) 用法: 2.1 如果对象是一个对象,会返回对象的属性名组成的数组; 2.2 如果对象是一个数组,则返回索引组成的数组: 2.3 如果是字符串,返回…

MySQL 8.0 InnoDB Tablespaces之Temporary Tablespaces(临时表空间)

文章目录 MySQL 8.0 InnoDB Tablespaces之Temporary Tablespaces(临时表空间)会话临时表空间会话临时表空间的磁盘分配和回收会话临时表空间的创建创建临时表和查看临时表信息会话临时表空间相关的设置参数innodb_temp_tablespaces_dir 全局临时表空间查…