跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Shell / Bash

Kubernetes CronJob 定时任务详解

Kubernetes CronJob 用于在集群中执行周期性任务,功能类似 Linux crontab。通过 schedule 字段定义时间周期,jobTemplate 定义容器运行逻辑。支持设置并发策略和启动截止期限。创建任务后需注意手动清理历史 Job 资源,防止堆积。适用于数据备份、日志轮转等自动化场景。

乱七八糟发布于 2025/1/20更新于 2026/6/1019 浏览
Kubernetes CronJob 定时任务详解

Kubernetes CronJob 简介

CronJob 是 Kubernetes 中用于执行周期性任务的资源对象,其设计理念类似于 Linux 系统中的 crontab。它允许你在指定的时间周期内自动运行指定的 Pod 任务。

需要注意的是,早期版本(如 K8s 1.5)曾使用 batch/v2alpha1 API,目前生产环境推荐使用稳定的 batch/v1 版本。

核心配置说明

在定义 CronJob 时,主要关注以下几个关键参数:

  • schedule:指定任务运行的周期,格式遵循标准的 Cron 表达式。
  • jobTemplate:定义需要运行的 Job 模板,包含 Pod 的具体规格。
  • startingDeadlineSeconds:设置任务开始的截止期限,若错过该时间则跳过本次执行。
  • concurrencyPolicy:控制并发策略,支持 Allow(允许并发)、Forbid(禁止并发)和 Replace(替换旧实例)三种模式。

实战示例

下面是一个完整的 YAML 配置文件示例,演示如何创建一个每 1 分钟执行一次的 Hello World 任务:

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

创建任务后,可以通过以下命令验证状态:

kubectl create -f cronjob.yaml
# 输出:cronjob "hello" created

kubectl get cronjob
# 查看调度计划与最近一次执行时间

kubectl get jobs
# 查看关联的 Job 资源

pods=$(kubectl get pods --selector=job-name=hello-xxx --output=jsonpath={.items..metadata.name} -a)
kubectl logs $pods
# 查看容器日志输出

清理与维护

在实际运维中,删除 CronJob 时不会自动清理历史生成的 Job 资源。为了避免资源堆积,建议手动删除旧的 Job:

kubectl delete cronjob hello
kubectl delete job <job-name>

这样既能停止新任务的调度,也能释放已占用的计算资源。

目录

  1. Kubernetes CronJob 简介
  2. 核心配置说明
  3. 实战示例
  4. 输出:cronjob "hello" created
  5. 查看调度计划与最近一次执行时间
  6. 查看关联的 Job 资源
  7. 查看容器日志输出
  8. 清理与维护
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • Python AI 大模型部署指南:本地运行、API 服务与 Docker 封装
  • CNN 经典架构演进与 PyTorch 实战指南
  • Linux 下 libwebkit2gtk-4.1-0 安装与配置指南
  • HomeAssistant 海尔智能家居集成插件使用指南
  • Windows 下 Python 包管理工具 uv 安装与 VSCode 配置指南
  • FAIR plus 2026 机器人全产业链接会前瞻
  • Python 爬虫接单经验分享与项目注意事项
  • AI 绘画入门:从零掌握文生图核心技术
  • C++ 入门:发展历史、命名空间与输入输出详解
  • OpenClaw 公网访问指南:使用 cpolar 实现远程连接
  • nnWNet:重新思考 Transformer 在生物医学图像分割中的应用
  • C++ Connector 与 MySQL:配置陷阱与性能优化深度解析
  • WebAssembly 运行时沙箱逃逸与内存安全实战
  • 2025 年 DeepSeek 开启 AI 算法变革元年深度解析
  • Circle Loss:统一 Softmax 与 Triplet 的优化视角
  • 七款主流大模型英文降 AI 检测率横向测评与选型建议
  • 基于 YOLOv8 的高速路面病害无人机检测数据集与训练实战
  • 【GitHub项目推荐--Webnovel Writer:基于Claude Code的长篇网文AI创作系统】⭐
  • Python 网络流量模拟工具架构解析与合规使用
  • Python 鸭子类型:动态类型的核心概念与实践

相关免费在线工具

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

  • JSON美化和格式化

    将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online