首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Job 与 Cronjob

Job 与 Cronjob

作者头像
星哥玩云
发布于 2022-09-15 13:32:06
发布于 2022-09-15 13:32:06
70200
代码可运行
举报
文章被收录于专栏:开源部署开源部署
运行总次数:0
代码可运行

一、Job

​Job 负责批处理任务,即仅执行一次的任务,它保证批处理任务的一个或多个 Pod 成功结束。

特殊说明

1、spec.template 格式同 Pod

​2、RestartPolicy 仅支持 Never 或 OnFailure

​3、单个 Pod 时,默认 Pod 成功运行后 Job 即结束

​4、spec.completions 标志 Job 结束需要成功运行的 Pod 个数,默认为 1

​5、spec.parallelism 标志并行运行的 Pod 的个数,默认为 1

​6、spec.activeDeadlineSeconds 标志失败 Pod 的重试最大时间,超过这个时间不会继续重试

Job 应用示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vim job.yaml

apiVersion: batch/v1
kind: Job
metadata:
  name: job
spec:
  template:
    metadata:
      name: job
    spec:
      containers:
      - name: job
        image: docker.io/perl
        command: ["perl", "-Mbignum=bpi", "-wle", "print bpi(2000)"]
      restartPolicy: Never

然后我们来看一下 Pod 的信息:

我们在来看下日志信息:

任务完成, π 的2000位信息。

二、Cronjob

​Cron Job 管理基于时间的 Job,即:

在给定时间点只运行一次

​周期性地在给定时间点运行

使用条件: 当前使用的 Kubernetes 集群,版本 >= 1.8

典型的用法:

​在给定的时间点调度 Job 运行

​创建周期性运行的 Job,例如:数据库备份、发送邮件

CronJob Spec:

spec.template 格式同 Pod

RestartPolicy 仅支持 NeverOnFailure

​单个 Pod 时,默认 Pod 成功运行后 Job 即结束

spec.schedule: 调度,必需字段,指定任务运行周期,格式同 Cron

spec.jobTemplate: Job 模板,必需字段,指定需要运行的任务,格式同 Job

spec.startingDeadlineSeconds: 启动 Job 的期限(秒级别),该字段是可选的。如果因为任何原因而错过了被调度的时间,那么错过执行时间的 Job 将被认为是失败的。如果没有指定,则没有期限

spec.concurrencyPolicy: 并发策略,该字段也是可选的。它指定了如何处理被 Cron Job 创建的 Job 的并发执行。只允许指定下面策略中的一种:

Allow (默认): 允许并发运行 Job

Forbid : 禁止并发运行,如果前一个还没有完成,则直接跳过下一个

Replace : 取消当前正在运行的 Job,用一个新的来替换

注意,当前策略只能应用于同一个 Cron Job 创建的 Job。如果存在多个 Cron Job,它们创建的 Job 之间总是允许并发运行。

spec.suspend : 挂起,该字段也是可选的。如果设置为 true ,后续所有执行都会被挂起。它对已经开始执行的 Job 不起作用,默认值为 false

spec.successfulJobsHistoryLimitspec.failedJobsHistoryLimit : 历史限制,是可选的字段。它们指定了可以保留多少完成和失败的 Job 。默认情况下,它们分别设置为 3 和 1 。设置限制的值为 0 ,相关类型的 Job 完成后将不会被保留。

Cronjob 应用示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vim cronjob.yaml

apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: hello
spec:
  schedule: "*/1 * * * *"
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: hello
            image: docker.io/busybox
            args:
            - /bin/sh
            - -c
            - date; echo Hello from the Kubernetes cluster
          restartPolicy: OnFailure

然后我们来运行我们的 Cronjob:

我们来查看一下我们的 Pod :

​我们来查看一下我们的 Job :

​我们来查看一下我们的日志信息:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
院长手把手教学---CronJob实验
[root@k8s-master ~]# kubectl apply -f cronjob.yaml
院长技术
2020/12/02
5370
k8s--资源控制器
Kubernetes中内建了很多controller (控制器) ,这些相当于一个状态机,用来控制Pod的具体状态和行为
eadela
2019/12/11
8570
kubernetes控制器之CronJob
一个 CronJob 对象类似于 crontab (cron table)文件中的一行。它根据指定的预定计划周期性地运行一个 Job,格式可以参考 Cron 。
菲宇
2019/06/12
1.5K0
快速入门Kubernetes(K8S)——资源控制器
上篇文章给大家介绍了快速入门Kubernetes(K8S)——资源清单本篇文章给大家讲解下关于资源控制器相关的内容,编写不易(对你有帮助的话一键三连)看完可以掌握一内容:
大数据老哥
2021/02/04
5740
快速入门Kubernetes(K8S)——资源控制器
【重识云原生】第六章容器基础6.4.8节——CronJob
一个 CronJob 对象就像 crontab (cron table) 文件中的一行。 它用 Cron 格式进行编写, 并周期性地在给定的调度时间执行 Job。
江中散人_Jun
2022/10/31
1.6K0
【重识云原生】第六章容器基础6.4.8节——CronJob
k8s 实践经验(八)job && CronJob
Job,主要用于负责**批量处理(一次要处理指定数量任务)短暂的一次性(每个任务仅运行一次就结束)**任务。Job特点如下:
看、未来
2022/05/09
7930
k8s 实践经验(八)job && CronJob
Kubernetes 之 Cronjob
Cronjob 是一个计划任务,与 Linux 系统 Crontab 一样,格式也是基本一样。
YP小站
2020/06/04
1.1K0
Kubernetes 之 Cronjob
Kubernetes K8S之资源控制器Job和CronJob详解
kubernetes中内建了很多controller(控制器),这些相当于一个状态机,用来控制pod的具体状态和行为。
踏歌行
2020/10/15
4.7K0
Kubernetes Job 与 CronJob
如果说 Deployment、DaemonSet 等资源为 Kubernetes 承担了长时间、在线计算的能力,那么定时、短期、甚至一次性的离线计算能力,便是 Job 和 CronJob 所承担的事情。
CS实验室
2021/03/22
1.1K0
Kubernetes Job 与 CronJob
k8s 关于Job与Cronjob
在Kubernetes 中通过创建工作负载资源 Job 可完成大型计算以及一些批处理任务。比如 Job 转码文件、获取部分文件和目录,机器学习中的训练任务等。这篇小作文我们一起来了解 k8s 中关于 job、cronjob 的内容。
你大哥
2021/11/02
8950
CronJob 和 Job 的 Pod 退出保留时间
除了 cronjob 管理 job 之外, job 本身也提供 .spec.ttlSecondsAfterFinished 进行退出管理。
老麦
2022/12/24
4990
kubernetes常用控制器之Job和CronJob
Kubernetes的主要任务是保证Pod中的应用长久稳定的运行,但是我们有时候也需要一些只需要运行一次,执行完就退出了的"短时"任务,这时候使用Deployment等这类控制器就无法满足我们的需求,Kubernetes就诞生了Job Controller,专门用来处理这类需求。
极客运维圈
2020/03/23
7360
k8s之Job和CronJob
使用yaml描述Job对象,其中restartPolicy是重启策略,需要设定为OnFailure,代表着如果失败则重启,如果是正常执行完成退出,则不需要再次启动。默认的值是Always,会保持着该Pod总是运行的。
编程黑洞
2023/03/06
5430
k8s之Job和CronJob
kubernetes系列教程(十三)一次性任务Job和周期任务
Windows下可以通过批处理脚本完成批处理任务,脚本运行完毕后任务即可终止,从而实现批处理任务运行工作,类似的任务如何在kubernetes中运行呢?答案是Jobs,Jobs是kubernetes中实现一次性计划任务的Pod控制器—JobController,通过控制Pod来执行任务,其特点为:
HappyLau谈云计算
2020/01/23
7.8K1
kubernete编排技术四:Job和CronJob
这篇文章我们学习一下kubernete对Job的编排。不同于前面讲的Deployment、StatefulSet的编排,Job是一个执行一次就结束的pod,并不会滚动更新。
jinjunzhu
2020/08/20
8200
关于 Kubernetes中Job&CronJob的一些笔记
Kubernetes从1.2版本开始支持批处理类型的应用,我们可以通过Kubernetes Job资源对象来定义并启动一个批处理任务。
山河已无恙
2023/03/02
6240
Kubernetes基础:编排调度的那些Controllers
Kubernetes提供了很多Controller资源来管理、调度Pod,包括Replication Controller、ReplicaSet、Deployments、StatefulSet、DaemonSet等等。本文介绍这些控制器的功能和用法。控制器是Kubernetes中的一种资源,用来方便管理Pod。可以把控制器想象成进程管理器,负责维护进程的状态。进程掉了负责拉起,需要更多进程了负责增加进程,可以监控进程根据进程消耗资源的情况动态扩缩容。只是在Kubernetes中,控制器管理的是Pods。Controller通过API Server提供的接口实时监控整个集群的每个资源对象的当前状态,当发生各种故障导致系统状态发生变化时,会尝试将系统状态修复到“期望状态”。
大江小浪
2018/10/10
1.2K0
如何使用Kubernetes Job运行一次性任务
在 kubernetes 中,Deployment、DaemonSet会持续运行任务,这些 pod 中的进程在崩溃退出时会重新启动,永远达不到完成态。你也许会遇到这样的场景,当需要运行一个一次性的可完成的任务,其进程终止后,不应该再重新启动,那么 Job 资源类型完全符合你。Kubernetes 中通过 Job 资源提供了对此的支持,它允许你运行一种 pod,该 pod 在内部进程成功结束时,不重启容器。一旦任务完成,pod 就被认为处于完成状态。在发生节点故障时,该节点上由 Job 管理的 pod 将按照 ReplicaSet 的 pod 的方式, 重新安排到其他节点,以确保任务能够成功完成,所以 Job 通常用于执行一次性任务或批处理作业。Job 还可以控制 Pod 的数量,确保一定数量的 Pod 成功完成任务。Job 的一些常用使用场景:
用户1107783
2023/09/25
8180
如何使用Kubernetes Job运行一次性任务
「走进k8s」Kubernetes1.15.1的定时任务和任务管理(24)
PS:当前一个CronJob在执行期间“大约”创建一个Job,之所以说“大约”是因为在特殊的情况下可能会创建两个或没有Job被创建。Kubernetes官方正在试图使这种情况尽量少发生,但目前还不能保证完全杜绝。CronJob的时间一定要控制好,设置好成功和失败,我的实例代码没写,但是在升成中务必添加。
IT架构圈
2019/08/23
4.7K0
kubernetes核心实战(七)--- job、CronJob、Secret
CronJobs 对于创建周期性的、反复重复的任务很有用,例如执行数据备份或者发送邮件。CronJobs 也可以用来计划在指定时间来执行的独立任务,例如计划当集群看起来很空闲时 执行某个 Job。
小陈运维
2022/08/19
4630
kubernetes核心实战(七)--- job、CronJob、Secret
相关推荐
院长手把手教学---CronJob实验
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档