在 Kubernetes 中,Job 和 CronJob 是管理批处理任务和定时任务的核心资源。根据经验,建议:
- Job:用于一次性任务,确保任务成功完成。通过
restartPolicy: OnFailure
控制异常重试,设置backoffLimit
限制重试次数。 - CronJob:定时任务需遵循 Cron 表达式格式。建议配置
concurrencyPolicy: Forbid
防止任务重叠,并设置startingDeadlineSeconds
避免调度延迟累积。 - 监控与调试:通过
kubectl logs <pod>
查看日志,结合 Prometheus 监控任务状态。若任务失败,优先检查资源限制(如内存不足)或依赖服务连通性。 - 资源回收:CronJob 默认保留最后 3 次成功记录,可通过
successfulJobsHistoryLimit
调整,避免存储压力。 实际案例中,推荐为任务配置独立 ServiceAccount 并限制 RBAC 权限,同时使用 ConfigMap/Secret 分离环境变量,确保安全性与可维护性。