news 2026/8/1 13:34:45

kubernetes之Cronjob

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
kubernetes之Cronjob

Cronjob 简介

Cronjob是一个计划任务,与 Linux 系统 Crontab 一样,格式也是基本一样。

格式如下

# ┌───────────── minute (0 - 59) # │ ┌───────────── hour (0 - 23) # │ │ ┌───────────── day of the month (1 - 31) # │ │ │ ┌───────────── month (1 - 12) # │ │ │ │ ┌───────────── day of the week (0 - 6) (Sunday to Saturday; # │ │ │ │ │ 7 is also Sunday on some systems) # │ │ │ │ │ # │ │ │ │ │ # * * * * * command to execute

具体见 https://en.wikipedia.org/wiki/Cron#Overview

Cronjob 结构草图

Cronjob 运行

CronJob使用 Job 对象来完成任务。CronJob每次运行时都会创建一个Job对象,Job会创建一个Pods来执行任务,任务执行完成后停止容器。

Cronjob 用途

CronJob在特定时间 或 按特定间隔运行任务。CronJob非常适合用于自动执行任务,例如备份、报告、发送电子邮件或清理任务。

Cronjob 例子

apiVersion:batch/v1beta1kind:CronJobmetadata:name:demo# Cronjob的名称labels:app:democron:hellospec:concurrencyPolicy:ForbidfailedJobsHistoryLimit:1jobTemplate:spec:template:metadata:labels:app:democron:hellospec:containers:-image:harbor.example.com/hello:v1imagePullPolicy:IfNotPresentname:hellocommand:[/bin/bash]args:--c-echo "Hello World!!!"# job 具体执行的任务resources:limits:cpu:300mmemory:300Mirequests:cpu:100mmemory:100MinodeSelector:label:testimagePullSecrets:-name:harbor-certificationrestartPolicy:Neverschedule:"15 * * * *"# job执行的周期,cron格式的字符串successfulJobsHistoryLimit:1

Cronjob 重要参数解释

  • 调度

    .spec.schedule.spec中必需的字段,它的值是Cron格式字的符串,例如:0 * * * *,或者 @hourly,根据指定的调度时间Job会被创建和执行。

  • 启动 Job 的期限(秒级别)

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

  • Job 历史版本限制

    • .spec.successfulJobsHistoryLimit:# 字段是可选的,成功完成的作业保存多少个
    • .spec.failedJobsHistoryLimit: # 字段是可选的,失败的作业保存多少个

    默认没有限制,所有成功和失败的 Job 都会被保留。然而,当运行一个 Cron Job 时,很快就会堆积很多 Job,推荐设置这两个字段的值。设置为0则不会保存,这两个字段与jobTemplate同级。

  • 并发策略

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

    • Allow(默认):允许并发运行 Job
    • Forbid:禁止并发运行,如果前一个还没有完成,则直接跳过下一个
    • Replace:取消当前正在运行的 Job,用一个新的来替换

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

  • 挂起

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

  • 重启策略

    restartPolicy仅支持NeverOnFailure

🔥运维干货分享

  • 软考高级系统架构设计师备考学习资料
  • 软考中级数据库系统工程师学习资料
  • 软考高级网络规划设计师备考学习资料
  • 软考高级系统规划与管理师学习资料
  • 软考中级系统集成项目管理师学习资料
  • Kubernetes CKA认证学习资料分享
  • AI大模型学习资料合集
  • PuTTY中文版安装包
  • MobaXterm中文版安装包
  • pinginfoview网络诊断工具中文版
  • Xshell、Xsftp、Xmanager中文版安装包
  • 毕业设计高质量毕业答辩 PPT 模板分享
  • IT行业工程师面试简历模板分享
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/1 18:43:27

24、Linux文件系统深度解析与操作指南

Linux文件系统深度解析与操作指南 1. /usr子目录介绍 在Linux系统中, /usr 目录常被视为一个独立的小型文件系统层次结构,它包含了许多重要且有趣的子目录,具体如下表所示。描述末尾带有星号(*)的目录,除非你有充分理由且具备丰富的Linux使用经验,确切知道要做哪些更…

作者头像 李华
网站建设 2026/8/1 7:05:22

Qwen3-Next-80B-A3B-FP8:混合架构重塑大模型效率边界

Qwen3-Next-80B-A3B-FP8:混合架构重塑大模型效率边界 【免费下载链接】Qwen3-Next-80B-A3B-Instruct-FP8 项目地址: https://ai.gitcode.com/hf_mirrors/Qwen/Qwen3-Next-80B-A3B-Instruct-FP8 导语 阿里达摩院推出的Qwen3-Next-80B-A3B-FP8大模型&#xf…

作者头像 李华
网站建设 2026/7/31 14:28:46

Wan2.2-Animate-14B:单图驱动的AI动画革命

Wan2.2-Animate-14B:单图驱动的AI动画革命 【免费下载链接】Wan2.2-Animate-14B 项目地址: https://ai.gitcode.com/hf_mirrors/Wan-AI/Wan2.2-Animate-14B 还在为角色动画制作发愁吗?Wan2.2-Animate-14B让你用一张图片就能生成专业级动画&#…

作者头像 李华
网站建设 2026/8/1 8:13:46

API测试技术:3大原始请求体获取方法深度解析

在API测试的复杂场景中,你是否经常遇到这样的困境:明明发送了精心构造的请求体,却因工具层的自动解析导致数据失真?这种"看得见摸不着"的原始请求体,恰恰是验证数据完整性、调试加密接口的关键所在。今天&am…

作者头像 李华
网站建设 2026/8/2 2:41:15

从无效提示到精准输出:Gemini提示工程4步诊断优化法

从无效提示到精准输出:Gemini提示工程4步诊断优化法 【免费下载链接】generative-ai Sample code and notebooks for Generative AI on Google Cloud 项目地址: https://gitcode.com/GitHub_Trending/ge/generative-ai 你是否曾经遇到过这样的情况&#xff1…

作者头像 李华
网站建设 2026/8/1 10:21:16

移动设备上的Minecraft Java版:PojavLauncher iOS深度解析

想象一下,在通勤的地铁上建造一座宏伟城堡,或在午休的咖啡厅里探索神秘矿洞——这不再是PC玩家的专属特权。PojavLauncher iOS作为一款革命性的启动器,将完整的Minecraft Java版体验带到了你的iPhone和iPad上。这个基于Boardwalk项目的开源工…

作者头像 李华