Kubernetes Job & CronJob 全面解析与实战指南
在 Kubernetes 中,Pod 通常运行持续不断的服务(如 Web 服务器)。但有时你需要运行一些执行完毕就退出的任务。Job 和 CronJob 就是为这种场景而设计的。本文将从基本概念、关键区别、实战示例、运维技巧到高级配置全面解析,让你彻底掌握 Kubernetes 的批处理与定时任务。
一、核心概念:它们是什么?
1. Job:一次性任务
- 定义:Job 会创建一个或多个 Pod,并确保指定数量的 Pod 成功终止。
- 目标:确保任务至少成功运行一次并完成。
- 生命周期:当 Pod 成功完成后,Job 被视为完成,但会保留在系统中(除非手动删除或设置自动清理),方便查看执行日志和状态。
- 关键特性:
- 处理 Pod 失败:Job 会根据 restartPolicy 自动重启失败 Pod,直到任务成功或达到重试次数上限。
- 并行执行:可以配置多个 Pod 并行运行,用于处理工作队列。
2. CronJob:定时任务
- 定义:CronJob 基于 时间计划 来重复地创建 Job。
- 目标:在指定的时间点或周期性地运行 Job。
- 生命周期:CronJob 控制器会持续运行,并根据 .spec.schedule 字段中定义的 Cron 时间表,不断创建新的 Job。
- 关键特性:
- 基于