---
api_metadata:
apiVersion: "batch/v1"
import: "k8s.io/api/batch/v1"
kind: "CronJob"
content_type: "api_reference"
description: "CronJob 代表单个定时作业 (Cron Job) 的配置。"
title: "CronJob"
weight: 10
---
`apiVersion: batch/v1`
`import "k8s.io/api/batch/v1"`
## CronJob {#CronJob}
CronJob 代表单个定时作业(Cron Job) 的配置。
- **apiVersion**: batch/v1
- **kind**: CronJob
- **metadata** (}}">ObjectMeta)
标准的对象元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
- **spec** (}}">CronJobSpec)
定时作业的预期行为的规约,包括排期表(Schedule)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
- **status** (}}">CronJobStatus)
定时作业的当前状态。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
## CronJobSpec {#CronJobSpec}
CronJobSpec 描述了作业的执行方式和实际将运行的时间。
- **jobTemplate** (JobTemplateSpec), 必需
指定执行 CronJob 时将创建的作业。
**JobTemplateSpec 描述了从模板创建作业时应具有的数据**
- **jobTemplate.metadata** (}}">ObjectMeta)
从此模板创建的作业的标准对象元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
- **jobTemplate.spec** (}}">JobSpec)
对作业的预期行为的规约。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
- **schedule** (string), 必需
Cron 格式的排期表,请参阅 https://zh.wikipedia.org/wiki/Cron。
- **timeZone** (string)
给定时间表的时区名称,请参阅 https://en.wikipedia.org/wiki/List_of_tz_database_time_zones。
如果未指定,这将默认为 kube-controller-manager 进程的时区。
有效时区名称和时区偏移量的设置由 API 服务器在 CronJob 验证期间从系统范围的时区数据库进行加载,
在执行期间由控制器管理器从系统范围的时区数据库进行加载。
如果找不到系统范围的时区数据库,则转而使用该数据库的捆绑版本。
如果时区名称在 CronJob 的生命周期内或由于主机配置更改而变得无效,该控制器将停止创建新的 Job,
并将创建一个原因为 UnknownTimeZone 的系统事件。更多信息,请请参阅
https://kubernetes.io/zh-cn/docs/concepts/workloads/controllers/cron-jobs/#time-zones。
- **concurrencyPolicy** (string)
指定如何处理作业的并发执行。 有效值为:
- "Allow" (默认):允许 CronJobs 并发运行;
- "Forbid":禁止并发运行,如果上一次运行尚未完成则跳过下一次运行;
- "Replace":取消当前正在运行的作业并将其替换为新作业。
- **startingDeadlineSeconds** (int64)
可选字段。当作业因为某种原因错过预定时间时,设定作业的启动截止时间(秒)。错过排期的作业将被视为失败的作业。
- **suspend** (boolean)
这个标志告诉控制器暂停后续的执行,它不适用于已经开始的执行。默认为 false。
- **successfulJobsHistoryLimit** (int32)
要保留的成功完成作业数。值必须是非负整数。默认值为 3。
- **failedJobsHistoryLimit** (int32)
要保留的以失败状态结束的作业个数。值必须是非负整数。默认值为 1。
## CronJobStatus {#CronJobStatus}
CronJobStatus 表示某个定时作业的当前状态。
- **active** ([]}}">ObjectReference)
**Atomic: 将在合并过程中被替换**
指向当前正在运行的作业的指针列表。
- **lastScheduleTime** (Time)
上次成功调度作业的时间信息。
**Time 是对 time.Time 的封装,它支持对 YAML 和 JSON 的正确编排。为 time 包提供的许多工厂方法模式提供了包装器。**
- **lastSuccessfulTime** (Time)
上次成功完成作业的时间信息。
**Time 是对 time.Time 的封装,它支持对 YAML 和 JSON 的正确编排。为 time 包提供的许多工厂方法模式提供了包装器。**
## CronJobList {#CronJobList}
CronJobList 是定时作业的集合。
- **apiVersion**: batch/v1
- **kind**: CronJobList
- **metadata** (}}">ListMeta)
标准列表元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
- **items** ([]}}">CronJob), required
items 是 CronJob 的列表。
## 操作 {#Operations}
### `get` 查看指定的 CronJob
#### HTTP 请求
GET /apis/batch/v1/namespaces/{namespace}/cronjobs/{name}
#### 参数
- **name** (**路径参数**): string, 必需
CronJob 的名称
- **namespace** (**路径参数**): string, 必需
}}">namespace
- **pretty** (**查询参数**): string
}}">pretty
#### 响应
200 (}}">CronJob): OK
401: Unauthorized
### `get` 查看指定 CronJob 的状态
#### HTTP 请求
GET /apis/batch/v1/namespaces/{namespace}/cronjobs/{name}/status
#### 参数
- **name** (**路径参数**): string, 必需
CronJob 的名称
- **namespace** (**路径参数**): string, 必需
}}">namespace
- **pretty** (**查询参数**): string
}}">pretty
#### 响应
200 (}}">CronJob): OK
401: Unauthorized
### `list` 查看或监视 CronJob 类别的对象
#### HTTP 请求
GET /apis/batch/v1/namespaces/{namespace}/cronjobs
#### 参数
- **namespace** (**路径参数**): string, 必需
}}">namespace
- **allowWatchBookmarks** (**查询参数**): boolean
}}">allowWatchBookmarks
- **continue** (**查询参数**): string
}}">continue
- **fieldSelector** (**查询参数**): string
}}">fieldSelector
- **labelSelector** (**查询参数**): string
}}">labelSelector
- **limit** (**查询参数**): integer
}}">limit
- **pretty** (**查询参数**): string
}}">pretty
- **resourceVersion** (**查询参数**): string
}}">resourceVersion
- **resourceVersionMatch** (**查询参数**): string
}}">resourceVersionMatch
- **sendInitialEvents** (**查询参数**): boolean
}}">sendInitialEvents
- **timeoutSeconds** (**查询参数**): integer
}}">timeoutSeconds
- **watch** (**查询参数**): boolean
}}">watch
#### 响应
200 (}}">CronJobList): OK
401: Unauthorized
### `list` 查看或监视 CronJob 类型的对象
#### HTTP 请求
GET /apis/batch/v1/cronjobs
#### 参数
- **allowWatchBookmarks** (*in query*): boolean
}}">allowWatchBookmarks
- **continue** (*in query*): string
}}">continue
- **fieldSelector** (*in query*): string
}}">fieldSelector
- **labelSelector** (*in query*): string
}}">labelSelector
- **limit** (*in query*): integer
}}">limit
- **pretty** (*in query*): string
}}">pretty
- **resourceVersion** (*in query*): string
}}">resourceVersion
- **resourceVersionMatch** (**查询参数**): string
}}">resourceVersionMatch
- **sendInitialEvents** (**查询参数**): boolean
}}">sendInitialEvents
- **timeoutSeconds** (*in query*): integer
}}">timeoutSeconds
- **watch** (*in query*): boolean
}}">watch
#### 响应
200 (}}">CronJobList): OK
401: Unauthorized
### `create` 创建一个 CronJob
#### HTTP 请求
POST /apis/batch/v1/namespaces/{namespace}/cronjobs
#### 参数
- **namespace** (**路径参数**): string, 必需
}}">namespace
- **body**: }}">CronJob, 必需
- **dryRun** (**查询参数**): string
}}">dryRun
- **fieldManager** (**查询参数**): string
}}">fieldManager
- **fieldValidation** (**查询参数**): string
}}">fieldValidation
- **pretty** (**查询参数**): string
}}">pretty
#### 响应
200 (}}">CronJob): OK
201 (}}">CronJob): Created
202 (}}">CronJob): Accepted
401: Unauthorized
### `update` 替换指定的 CronJob
#### HTTP 请求
PUT /apis/batch/v1/namespaces/{namespace}/cronjobs/{name}
#### 参数
- **name** (**路径参数**): string, 必需
CronJob 的名称
- **namespace** (**路径参数**): string, 必需
}}">namespace
- **body**: }}">CronJob, 必需
- **dryRun** (**查询参数**): string
}}">dryRun
- **fieldManager** (**查询参数**): string
}}">fieldManager
- **fieldValidation** (**查询参数**): string
}}">fieldValidation
- **pretty** (**查询参数**): string
}}">pretty
#### 响应
200 (}}">CronJob): OK
201 (}}">CronJob): Created
401: Unauthorized
### `update` 替换指定 CronJob 的状态
#### HTTP 请求
PUT /apis/batch/v1/namespaces/{namespace}/cronjobs/{name}/status
#### 参数
- **name** (**路径参数**): string, 必需
CronJob 的名称
- **namespace** (**路径参数**): string, 必需
}}">namespace
- **body**: }}">CronJob, 必需
- **dryRun** (**查询参数**): string
}}">dryRun
- **fieldManager** (**查询参数**): string
}}">fieldManager
- **fieldValidation** (**查询参数**): string
}}">fieldValidation
- **pretty** (**查询参数**): string
}}">pretty
#### 响应
200 (}}">CronJob): OK
201 (}}">CronJob): Created
401: Unauthorized
### `patch` 部分更新指定的 CronJob
#### HTTP 请求
PATCH /apis/batch/v1/namespaces/{namespace}/cronjobs/{name}
#### 参数
- **name** (**路径参数**): string, 必需
CronJob 的名称
- **namespace** (**路径参数**): string, 必需
}}">namespace
- **body**: }}">Patch, 必需
- **dryRun** (**查询参数**): string
}}">dryRun
- **fieldManager** (**查询参数**): string
}}">fieldManager
- **fieldValidation** (**查询参数**): string
}}">fieldValidation
- **force** (**查询参数**): boolean
}}">force
- **pretty** (**查询参数**): string
}}">pretty
#### 响应
200 (}}">CronJob): OK
201 (}}">CronJob): Created
401: Unauthorized
### `patch` 部分更新指定 CronJob 的状态
#### HTTP 请求
PATCH /apis/batch/v1/namespaces/{namespace}/cronjobs/{name}/status
#### 参数
- **name** (**路径参数**): string, 必需
CronJob 的名称
- **namespace** (**路径参数**): string, 必需
}}">namespace
- **body**: }}">Patch, 必需
- **dryRun** (**参数参数**): string
}}">dryRun
- **fieldManager** (**参数参数**): string
}}">fieldManager
- **fieldValidation** (**参数参数**): string
}}">fieldValidation
- **force** (**参数参数**): boolean
}}">force
- **pretty** (**参数参数**): string
}}">pretty
#### 响应
200 (}}">CronJob): OK
201 (}}">CronJob): Created
401: Unauthorized
### `delete` 删除一个 CronJob
#### HTTP 请求
DELETE /apis/batch/v1/namespaces/{namespace}/cronjobs/{name}
#### 参数
- **name** (**路径参数**): string, 必需
CronJob 的名称
- **namespace** (**路径参数**): string, 必需
}}">namespace
- **body**: }}">DeleteOptions
- **dryRun** (**查询参数**): string
}}">dryRun
- **gracePeriodSeconds** (**查询参数**): integer
}}">gracePeriodSeconds
- **pretty** (**查询参数**): string
}}">pretty
- **propagationPolicy** (**查询参数**): string
}}">propagationPolicy
#### 响应
200 (}}">Status): OK
202 (}}">Status): Accepted
401: Unauthorized
### `deletecollection` 删除一组 CronJob
#### HTTP 请求
DELETE /apis/batch/v1/namespaces/{namespace}/cronjobs
#### 参数
- **namespace** (**路径参数**): string, 必需
}}">namespace
- **body**: }}">DeleteOptions
- **continue** (**查询参数**): string
}}">continue
- **dryRun** (**查询参数**): string
}}">dryRun
- **fieldSelector** (**查询参数**): string
}}">fieldSelector
- **gracePeriodSeconds** (**查询参数**): integer
}}">gracePeriodSeconds
- **labelSelector** (**查询参数**): string
}}">labelSelector
- **limit** (**查询参数**): integer
}}">limit
- **pretty** (**查询参数**): string
}}">pretty
- **propagationPolicy** (**查询参数**): string
}}">propagationPolicy
- **resourceVersion** (**查询参数**): string
}}">resourceVersion
- **resourceVersionMatch** (**查询参数**): string
}}">resourceVersionMatch
- **sendInitialEvents** (**查询参数**): boolean
}}">sendInitialEvents
- **timeoutSeconds** (**查询参数**): integer
}}">timeoutSeconds
#### 响应
200 (}}">Status): OK
401: Unauthorized