在 Kubernetes Job 资源中,restartPolicy(重启策略)是强约束字段,只能设置为 Never 或 OnFailure,绝对不能用 Always。
这是 Job 区别于 Deployment/DaemonSet 的核心特性,根源是 Job 的定位是一次性任务,而非长期运行服务。
一、restartPolicy三种取值对比
| 重启策略 | 核心逻辑 | 是否支持 Job | 适用场景 |
|---|---|---|---|
| Never | 容器失败 → 不重启容器,直接标记 Pod 为 Error → Job 触发重建新 Pod | ✅ 支持(推荐) | 任务失败后需要全新环境重试(如数据清理、文件同步) |
| OnFailure | 容器失败 → 直接重启容器(不重建 Pod)→ 仅当容器无法重启时,才重建 Pod | ✅ 支持 | 临时故障(如网络抖动、API 超时),重启容器即可恢复 |
| Always | 容器终止(无论成功 / 失败)→ 立即重启容器 | ❌ 完全不支持 | 长期运行服务(如 Nginx、MySQL),仅用于 Deployment 等 |
