第 6 章 CronJob [batch/v1]


描述
CronJob 代表单个 cron 作业的配置。
类型
对象

6.1. 规格

属性类型描述

apiVersion

字符串

APIVersion 定义对象的这个表示法的版本化的 schema。服务器应该将识别的模式转换为最新的内部值,并可拒绝未识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources

kind

字符串

kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

metadata

ObjectMeta

标准对象元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata

spec

object

CronJobSpec 描述作业执行如何以及实际运行时。

status

object

CronJobStatus 代表 cron 任务的当前状态。

6.1.1. .spec

描述
CronJobSpec 描述作业执行如何以及实际运行时。
类型
object
必填
  • 调度
  • jobTemplate
属性类型描述

concurrencyPolicy

string

指定如何处理作业的并发执行。有效值为: - "Allow" (默认):允许 CronJob 同时运行; - "Forbid": forbids concurrent 运行、跳过下一次运行(如果上一个运行还没有完成); - "Replace": 取消当前运行的作业,并将其替换为新的作业

可能枚举值: - "Allow" 允许 CronJob 并发运行。- "Forbid" forbids 并发运行并跳过下一次运行(如果之前还没有完成)。- "Replace" 取消当前运行的作业,并将其替换为新的作业。

failedJobsHistoryLimit

整数

要保留的失败完成作业数量。值必须是非负整数。默认为 1。

jobTemplate

object

JobTemplateSpec 描述从模板创建时作业应具有的数据

调度

string

Cron 格式的调度,请参阅 https://en.wikipedia.org/wiki/Cron

startingDeadlineSeconds

整数

如果因为任何原因而错过了调度时间,则可选截止时间(以秒为单位)。错过的作业执行计为失败的作业。

successfulJobsHistoryLimit

整数

要保留的成功完成作业数量。值必须是非负整数。默认值为 3。

suspend

布尔值

此标志告知控制器暂停后续执行,它不会应用到已经启动的执行。默认为false。

timeZone

string

给定调度的时区名称,请参阅 https://en.wikipedia.org/wiki/List_of_tz_database_time_zones。如果没有指定,则默认为 kube-controller-manager 进程的时区。在 CronJob 验证过程中,API 服务器从系统范围的时区数据库加载有效的时区名称和时区偏移集。如果没有找到系统范围的时区数据库,则改为使用数据库的捆绑版本。如果在 CronJob 的生命周期内或主机配置有变化而变得无效,控制器会停止创建新作业,并将创建一个具有 UnknownTimeZone 原因的系统事件。如需更多信息,请参阅 https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/#time-zones this is beta 字段,且必须通过 CronJobTimeZone 功能门启用。

6.1.2. .spec.jobTemplate

描述
JobTemplateSpec 描述从模板创建时作业应具有的数据
类型
object
属性类型描述

metadata

ObjectMeta

从该模板创建的作业的标准对象元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata

spec

object

JobSpec 描述作业执行的方式。

6.1.3. .spec.jobTemplate.spec

描述
JobSpec 描述作业执行的方式。
类型
object
必填
  • 模板
属性类型描述

activeDeadlineSeconds

整数

指定与 startTime 相关的持续时间(以秒为单位),作业可能会在系统尝试终止它前持续激活;值必须是正整数。如果作业被挂起(在创建或通过更新时),则当作业再次恢复时,此计时器将有效停止并重置。

backoffLimit

整数

指定在标记此作业失败前重试次数。默认值为 6

completionMode

string

CompletionMode 指定如何跟踪 Pod 完成。它可以是 NonIndexed (默认)或 Indexed

NonIndexed 表示当 .spec.completions 成功完成 Pod 时,作业被视为已完成。每个 Pod 完成都相互同动。

索引 表示作业的 Pod 从 0 到(.spec.completions - 1),注解 batch.kubernetes.io/job-completion-index 提供。当每个索引都有一个成功完成 Pod 时,作业被视为已完成。当值为 Indexed 时,必须指定 .spec.completions,并且 .spec.parallelism 必须小于或等于 10^5。另外,Pod 名称采用 $(job-name)-$(index)-$(random-string) 的形式,Pod 主机名采用 $(job-name)-$(index) 的形式。

以后可以添加更多完成模式。如果作业控制器观察到没有识别的模式,则控制器会因为版本 skew 而导致升级,则控制器会跳过作业的更新。

completions

整数

指定作业应该运行成功完成的 pod 数量。设置为 nil 意味着,任何 pod 成功都会提示所有 pod 成功,并允许并行( parallelism)具有任何正数的值。设置为 1 表示并行性限制为 1,pod 的成功会通知作业成功。更多信息: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/

manualSelector

布尔值

manualSelector 控制 pod 标签和 pod 选择器的生成。除非您确定正在执行的操作,否则请保留 manualSelector。如果为 false 或未设置,系统会选择此作业的唯一标签,并将这些标签附加到 pod 模板。为 true 时,用户负责选择唯一标签并指定选择器。无法选择唯一标签可能会导致此和其他作业无法正常工作。但是,在使用旧 extensions/v1beta1 API 创建的作业中看到 manualSelector=true。更多信息: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#specifying-your-own-pod-selector

parallelism

整数

指定作业应在任意给定时间运行的最大 pod 数量。当(.spec.completions - .status.successful)< .spec.parallelism)< .spec.parallelism)时,以 steady 状态运行的 pod 的实际数量将小于这个数字。更多信息: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/

podFailurePolicy

object

PodFailurePolicy 描述了 pod 失败会影响 backoffLimit。

selector

LabelSelector

与 pod 数量匹配的 pod 的标签查询。通常,系统会为您设置此字段。更多信息: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors

suspend

布尔值

suspend 指定作业控制器是否应该创建 Pod。如果创建一个作业,并将 suspend 设为 true,则作业控制器不会创建 Pod。如果在创建后暂停某个作业(例如,标志从 false 变为 true),则作业控制器将删除与此作业关联的所有活动 Pod。用户必须设计自己的工作负载才能正常处理。暂停作业将重置作业的 StartTime 字段,从而有效地重置 ActiveDeadlineSeconds 计时器。默认为false。

模板

PodTemplateSpec

描述在执行作业时将创建的 pod。更多信息: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/

ttlSecondsAfterFinished

整数

ttlSecondsAfterFinished 限制已完成执行( Complete 或 Failed)的作业的生命周期。如果设置了此字段,ttlSecondsAfterFinished 在作业完成后,它可以被自动删除。当作业被删除时,其生命周期保证(如终结器)将会被遵守。如果未设置此字段,则不会自动删除作业。如果此字段设为零,则作业在完成后将立即删除。

6.1.4. .spec.jobTemplate.spec.podFailurePolicy

描述
PodFailurePolicy 描述了 pod 失败会影响 backoffLimit。
类型
object
必填
  • rules
属性类型描述

rules

数组

Pod 失败策略规则列表。规则按顺序评估。当规则与 Pod 故障匹配后,其余的规则将被忽略。如果没有与 Pod 故障匹配的规则,则应用默认处理 - pod 故障的计数器会递增,并针对 backoffLimit 检查。最多允许 20 个元素。

rules[]

object

PodFailurePolicyRule 描述了在满足要求时如何处理 pod 失败。每个规则都不能使用 OnExitCodes 和 onPodConditions 中的一个。

6.1.5. .spec.jobTemplate.spec.podFailurePolicy.rules

描述
Pod 失败策略规则列表。规则按顺序评估。当规则与 Pod 故障匹配后,其余的规则将被忽略。如果没有与 Pod 故障匹配的规则,则应用默认处理 - pod 故障的计数器会递增,并针对 backoffLimit 检查。最多允许 20 个元素。
类型
数组

6.1.6. .spec.jobTemplate.spec.podFailurePolicy.rules[]

描述
PodFailurePolicyRule 描述了在满足要求时如何处理 pod 失败。每个规则都不能使用 OnExitCodes 和 onPodConditions 中的一个。
类型
object
必填
  • action
属性类型描述

action

string

指定满足要求时 pod 故障执行的操作。可能的值有: - FailJob: 表示 pod 的作业被标记为 Failed,所有运行的 pod 都被终止。- Ignore: 表示对 .backoffLimit 的计数器没有递增,并且创建了替换 pod。- Count: 表示 pod 以默认方式处理 - .backoffLimit 的计数器会递增。以后会考虑添加额外的值。客户端应通过跳过规则来响应未知操作。

可能枚举值: - "Count" 是一个在 pod 故障上执行的操作 - pod 失败以默认方式处理 - 计数器到 .backoffLimit (由作业的 .status.failed 字段表示)会递增。- "FailJob" 这是在 pod 失败上执行的操作,可能在 pod 失败 - mark 上执行。pod 的作业为 Failed,终止所有运行的 pod。- "Ignore "这是可能在 pod 失败时执行的操作 - 对应 .backoffLimit 的计数器。由作业的 .status.failed 字段表示,不会递增并创建一个替换 pod。

onExitCodes

object

PodFailurePolicyOnExitCodesRequirement 描述了根据容器退出代码处理失败 pod 的要求。特别是,它会分别查找每个应用程序容器和 init 容器状态的 .state.terminated.exitCode,分别由 Pod 状态中的 .status.containerStatuses 和 .status.initContainerStatuses 字段显示。成功完成的容器(退出代码 0)不包括在要求检查中。

onPodConditions

数组

代表 pod 条件的要求。要求以 pod 条件模式列表表示。如果至少有一个模式与实际的 pod 条件匹配,则满足要求。最多允许 20 个元素。

onPodConditions[]

object

PodFailurePolicyOnPodConditionsPattern 描述了与实际 pod 条件类型匹配的模式。

6.1.7. .spec.jobTemplate.spec.podFailurePolicy.rules[].onExitCodes

描述
PodFailurePolicyOnExitCodesRequirement 描述了根据容器退出代码处理失败 pod 的要求。特别是,它会分别查找每个应用程序容器和 init 容器状态的 .state.terminated.exitCode,分别由 Pod 状态中的 .status.containerStatuses 和 .status.initContainerStatuses 字段显示。成功完成的容器(退出代码 0)不包括在要求检查中。
类型
object
必填
  • operator
  • values
属性类型描述

containerName

string

使用指定名称将退出代码限制为容器。当为 null 时,该规则适用于所有容器。指定后,它应当与 pod 模板中的一个容器或 initContainer 名称匹配。

operator

string

代表容器退出代码和指定的值之间的关系。成功完成的容器(退出代码 0)不包括在要求检查中。可能的值有: - 如果至少有一个容器退出代码(如果多个容器没有受 'containerName' 字段限制)时,满足要求。- 如果至少一个容器退出代码(如果多个容器没有受 'containerName' 字段限制),则满足满足指定值的要求。如果至少一个容器退出代码(如果多个容器没有受到 'containerName' 字段限制),则满足满足指定值集的要求。以后会考虑添加额外的值。假设不满足要求,客户端应该对未知操作器做出反应。

可能枚举值: - "In" - "NotIn"

values

数组(整数)

指定一组值。每个返回的容器退出代码(如果有多个容器)都会针对于 Operator 相关的一组值进行检查。值列表必须排序,且不得包含重复值。值 '0' 不能用于 In operator。至少需要一个元素。最多允许 255 个元素。

6.1.8. .spec.jobTemplate.spec.podFailurePolicy.rules[].onPodConditions

描述
代表 pod 条件的要求。要求以 pod 条件模式列表表示。如果至少有一个模式与实际的 pod 条件匹配,则满足要求。最多允许 20 个元素。
类型
数组

6.1.9. .spec.jobTemplate.spec.podFailurePolicy.rules[].onPodConditions[]

描述
PodFailurePolicyOnPodConditionsPattern 描述了与实际 pod 条件类型匹配的模式。
类型
object
必填
  • type
  • status
属性类型描述

status

string

指定所需的 Pod 条件状态。要匹配 pod 条件,需要指定的状态等于 pod 条件状态。默认值为 True。

type

string

指定所需的 Pod 条件类型。要匹配 pod 条件,需要指定类型等于 pod 条件类型。

6.1.10. .status

描述
CronJobStatus 代表 cron 任务的当前状态。
类型
object
属性类型描述

active

array (ObjectReference)

指向当前运行的作业的指针列表。

lastScheduleTime

Time

最后一次调度作业的时间信息。

lastSuccessfulTime

Time

信息是作业成功完成最后一次的时间。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.