Kubernetes 中的特殊服务模式解析
在 Kubernetes 的应用场景中,有几种特殊的服务模式能够满足不同的业务需求,下面将详细介绍 CronJob、Daemon Service 和 Singleton Service 这三种模式。
1. CronJob
CronJob 是一种专门用于处理具有时间维度工作单元的模式。它可以为现有的 Job 定义添加类似 cron 的集群行为。以下是 CronJob 的一些关键属性:
- .spec.startingDeadlineSeconds :如果 Job 错过预定时间,该属性指定启动 Job 的截止时间(以秒为单位)。在某些用例中,任务只有在特定时间范围内执行才有效,延迟执行则无效。例如,由于计算资源不足或其他依赖项缺失导致 Job 未在期望时间执行,可能最好跳过该执行,因为它要处理的数据已经过时。注意,截止时间不要少于 10 秒,因为 Kubernetes 每 10 秒才检查一次 Job 状态。
- .spec.concurrencyPolicy :指定如何管理由同一个 CronJob 创建的 Job 的并发执行。默认行为是 Allow
,即即使前一个 Job 尚未完成,也会创建新的 Job 实例。如果不希望这样,可以使用 Forbid
跳过下一次运行(如果当前运行尚未完成),或者使用 Replace
取消当前正在运行的 Job 并启动一个新的。
- .spec.suspend :该字段用于暂停所有后续执行,而不影响已