Update automated-tasks-with-cron-jobs.md

This commit is contained in:
AdamDang 2018-11-19 16:49:05 +08:00 committed by GitHub
parent 074666cd3b
commit 3ef3427128
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 21 additions and 21 deletions

View File

@ -29,7 +29,7 @@ Cron jobs can also schedule individual tasks for a specific time, such as if you
你可以利用 [CronJobs](/docs/concepts/workloads/controllers/cron-jobs) 执行基于时间调度的任务。这些自动化任务和 Linux 或者 Unix 系统的 [Cron](https://en.wikipedia.org/wiki/Cron) 任务类似。
CronJobs 在创建周期性以及重复性的任务时很有帮助例如执行备份操作或者发送邮件。CronJobs也可以在特定时间调度单个任务例如你想调度低活跃周期的任务。
CronJobs 在创建周期性以及重复性的任务时很有帮助例如执行备份操作或者发送邮件。CronJobs 也可以在特定时间调度单个任务,例如你想调度低活跃周期的任务。
{{< note >}}
<!--
@ -38,7 +38,7 @@ You should switch to using `batch/v1beta1`, instead, which is enabled by default
Examples in this document use `batch/v1beta1` in all examples.
-->
从集群版本1.8开始,`batch/v2alpha1` API 组中的 CronJob 资源已经被废弃。
你应该切换到API 服务器默认启用的 `batch/v1beta1` API 组。本文中的所有示例使用了`batch/v1beta1`。
你应该切换到 API 服务器默认启用的 `batch/v1beta1` API 组。本文中的所有示例使用了`batch/v1beta1`。
{{< /note >}}
<!--
@ -51,7 +51,7 @@ For more limitations, see [CronJobs](/docs/concepts/workloads/controllers/cron-j
CronJobs 有一些限制和特点。
例如,在特定状况下,同一个 CronJob 可以创建多个任务。
因此,任务应该是幂等的。
查看更多限制,请参考[CronJobs](/docs/concepts/workloads/controllers/cron-jobs)。
查看更多限制,请参考 [CronJobs](/docs/concepts/workloads/controllers/cron-jobs)。
{{% /capture %}}
@ -66,7 +66,7 @@ for more), and then restart both the API server and the controller manager
component.
-->
* 你需要一个版本 >=1.8 且工作正常的 Kubernetes 集群。对于更早的版本( <1.8 你需要对API 服务器设置 `--runtime-config=batch/v2alpha1=true` 来开启 `batch/v2alpha1` API(更多信息请查看 [为你的集群开启或关闭 API 版本](/docs/admin/cluster-management/#turn-on-or-off-an-api-version-for-your-cluster)
* 你需要一个版本 >=1.8 且工作正常的 Kubernetes 集群。对于更早的版本( <1.8 你需要对 API 服务器设置 `--runtime-config=batch/v2alpha1=true` 来开启 `batch/v2alpha1` API(更多信息请查看 [为你的集群开启或关闭 API 版本](/docs/admin/cluster-management/#turn-on-or-off-an-api-version-for-your-cluster)
), 然后重启 API 服务器和控制管理器。
{{% /capture %}}
@ -82,7 +82,7 @@ This example cron job config `.spec` file prints the current time and a hello me
## 创建 CronJob
CronJob需要一个配置文件。
CronJob 需要一个配置文件。
本例中 CronJob 的`.spec` 配置文件每分钟打印出当前时间和一个问好信息:
{{< codenew file="application/job/cronjob.yaml" >}}
@ -113,7 +113,7 @@ cronjob "hello" created
After creating the cron job, get its status using this command:
-->
创建好CronJob后使用下面的命令来获取其状态
创建好 CronJob 后,使用下面的命令来获取其状态:
```shell
$ kubectl get cronjob hello
@ -126,7 +126,7 @@ As you can see from the results of the command, the cron job has not scheduled o
Watch for the job to be created in around one minute:
-->
就像你从命令返回结果看到的那样CronJob还没有调度或执行任何任务。大约需要一分钟任务才能创建好。
就像你从命令返回结果看到的那样CronJob 还没有调度或执行任何任务。大约需要一分钟任务才能创建好。
```shell
$ kubectl get jobs --watch
@ -139,7 +139,7 @@ Now you've seen one running job scheduled by the "hello" cron job.
You can stop watching the job and view the cron job again to see that it scheduled the job:
-->
现在你已经看到了一个运行中的任务被 “hello” CronJob调度。你可以停止监视这个任务然后再次查看CronJob就能看到它调度任务
现在你已经看到了一个运行中的任务被 “hello” CronJob 调度。你可以停止监视这个任务,然后再次查看 CronJob 就能看到它调度任务:
```shell
$ kubectl get cronjob hello
@ -180,7 +180,7 @@ When you don't need a cron job any more, delete it with `kubectl delete cronjob`
## 删除 CronJob
当你不再需要CronJob时可以用 `kubectl delete cronjob` 删掉它:
当你不再需要 CronJob 时,可以用 `kubectl delete cronjob` 删掉它:
```shell
$ kubectl delete cronjob hello
@ -203,9 +203,9 @@ and [using kubectl to manage resources](/docs/user-guide/working-with-resources)
A cron job config also needs a [`.spec` section](https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status).
-->
## 编写CronJob声明信息
## 编写 CronJob 声明信息
像 Kubernetes 的其他配置一样CronJob需要 `apiVersion``kind`、 和 `metadata` 域。配置文件的一般信息,请参考 [部署应用](/docs/user-guide/deploying-applications) 和 [使用 kubectl 管理资源](/docs/user-guide/working-with-resources).
像 Kubernetes 的其他配置一样CronJob 需要 `apiVersion``kind`、 和 `metadata` 域。配置文件的一般信息,请参考 [部署应用](/docs/user-guide/deploying-applications) 和 [使用 kubectl 管理资源](/docs/user-guide/working-with-resources).
CronJob 配置也需要包括[`.spec`](https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status).
@ -213,7 +213,7 @@ CronJob 配置也需要包括[`.spec`](https://git.k8s.io/community/contributors
<!--
All modifications to a cron job, especially its `.spec`, are applied only to the following runs.
-->
对CronJob的所有改动特别是它的 `.spec`,只会影响将来的运行实例。
CronJob 的所有改动,特别是它的 `.spec`,只会影响将来的运行实例。
{{< /note >}}
<!--
@ -279,7 +279,7 @@ If this field is not specified, the jobs have no deadline.
### 开始的最后期限
`.spec.startingDeadlineSeconds` 域是可选的。
它表示任务如果由于某种原因错过了调度时间开始该任务的截止时间的秒数。过了截止时间CronJob就不会开始任务。
它表示任务如果由于某种原因错过了调度时间开始该任务的截止时间的秒数。过了截止时间CronJob 就不会开始任务。
不满足这种最后期限的任务会被统计为失败任务。如果该域没有声明,那任务就没有最后期限。
<!--
@ -294,10 +294,10 @@ schedules occurred in the last 200 seconds. In that case, if there were more tha
last 200 seconds, the cron job is no longer scheduled.
-->
CronJob 控制器会统计错过了多少次调度。如果错过了100次以上的调度CronJob就不再调度了。当没有设置 `.spec.startingDeadlineSeconds`CronJob控制器统计从`status.lastScheduleTime`到当前的调度错过次数。
例如一个CronJob期望每分钟执行一次`status.lastScheduleTime`是 5:00am但现在是 7:00am。那意味着120次调度被错过了所以 CronJob将不再被调度。
CronJob 控制器会统计错过了多少次调度。如果错过了100次以上的调度CronJob 就不再调度了。当没有设置 `.spec.startingDeadlineSeconds`CronJob 控制器统计从`status.lastScheduleTime`到当前的调度错过次数。
例如一个 CronJob 期望每分钟执行一次,`status.lastScheduleTime`是 5:00am但现在是 7:00am。那意味着120次调度被错过了所以 CronJob 将不再被调度。
如果设置了 `.spec.startingDeadlineSeconds` 域(非空)CronJob 控制器统计从 `.spec.startingDeadlineSeconds` 到当前时间错过了多少次任务。
例如设置了 `200`它会统计过去200秒内错过了多少次调度。在那种情况下如果过去200秒内错过了超过100次的调度CronJob就不再调度。
例如设置了 `200`它会统计过去200秒内错过了多少次调度。在那种情况下如果过去200秒内错过了超过100次的调度CronJob 就不再调度。
<!--
### Concurrency Policy
@ -316,13 +316,13 @@ If there are multiple cron jobs, their respective jobs are always allowed to run
### 并发性规则
`.spec.concurrencyPolicy` 也是可选的。它声明了CronJob创建的任务执行时发生重叠如何处理。spec 仅能声明下列规则中的一种:
`.spec.concurrencyPolicy` 也是可选的。它声明了 CronJob 创建的任务执行时发生重叠如何处理。spec 仅能声明下列规则中的一种:
* `Allow` (默认)CronJob允许并发任务执行。
* `Forbid` CronJob不允许并发任务执行如果新任务的执行时间到了而老任务没有执行完CronJob会忽略新任务的执行。
* `Replace`如果新任务的执行时间到了而老任务没有执行完CronJob会用新任务替换当前正在运行的任务。
* `Allow` (默认)CronJob 允许并发任务执行。
* `Forbid` CronJob 不允许并发任务执行如果新任务的执行时间到了而老任务没有执行完CronJob 会忽略新任务的执行。
* `Replace`如果新任务的执行时间到了而老任务没有执行完CronJob 会用新任务替换当前正在运行的任务。
请注意并发性规则仅适用于相同CronJob创建的任务。如果有多个CronJob它们相应的任务总是允许并发执行的。
请注意,并发性规则仅适用于相同 CronJob 创建的任务。如果有多个 CronJob它们相应的任务总是允许并发执行的。
<!--
### Suspend