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

This commit is contained in:
AdamDang
2018-11-19 15:32:37 +08:00
committed by GitHub
parent 608cad5a33
commit 074666cd3b
@@ -37,7 +37,8 @@ CronJob resource in `batch/v2alpha1` API group has been deprecated starting from
You should switch to using `batch/v1beta1`, instead, which is enabled by default in the API server. You should switch to using `batch/v1beta1`, instead, which is enabled by default in the API server.
Examples in this document use `batch/v1beta1` in all examples. Examples in this document use `batch/v1beta1` in all examples.
--> -->
`batch/v2alpha1` API 组中 CronJob 资源从集群版本1.8开始已经被去掉了。你应该切换到`batch/v1beta1`,在这里的API 服务器中是默认开启的。本文中的所有示例使用了`batch/v1beta1` 从集群版本1.8开始,`batch/v2alpha1` API 组中 CronJob 资源已经被废弃
你应该切换到API 服务器默认启用的 `batch/v1beta1` API 组。本文中的所有示例使用了`batch/v1beta1`
{{< /note >}} {{< /note >}}
<!-- <!--
@@ -47,10 +48,10 @@ Therefore, jobs should be idempotent.
For more limitations, see [CronJobs](/docs/concepts/workloads/controllers/cron-jobs). For more limitations, see [CronJobs](/docs/concepts/workloads/controllers/cron-jobs).
--> -->
CronJobs有一些限制和特点。 CronJobs 有一些限制和特点。
例如,在特定状况下,一个单独的cron job可以创建多个任务。 例如,在特定状况下,一个 CronJob 可以创建多个任务。
因此,任务应该是幂等的。 因此,任务应该是幂等的。
查看更多限制,请参考[CronJobs](/docs/concepts/workloads/controllers/cron-jobs). 查看更多限制,请参考[CronJobs](/docs/concepts/workloads/controllers/cron-jobs)
{{% /capture %}} {{% /capture %}}
@@ -81,8 +82,8 @@ This example cron job config `.spec` file prints the current time and a hello me
## 创建 CronJob ## 创建 CronJob
Cron Job需要一个配置文件。 CronJob需要一个配置文件。
本例中 Cron Job 的`.spec` 配置文件每分钟打印出当前时间和一个问好信息: 本例中 CronJob 的`.spec` 配置文件每分钟打印出当前时间和一个问好信息:
{{< codenew file="application/job/cronjob.yaml" >}} {{< codenew file="application/job/cronjob.yaml" >}}
@@ -154,7 +155,7 @@ Now, find the pods that the last scheduled job created and view the standard out
Note that the job name and pod name are different. Note that the job name and pod name are different.
--> -->
你应该能看到 “hello” CronJob 在 `LAST-SCHEDULE` 声明的时间点成功的调度了一次任务。有0个活跃的任务意味着任务执行完毕或执行失败。 你应该能看到 “hello” CronJob 在 `LAST-SCHEDULE` 声明的时间点成功的调度了一次任务。有0个活跃的任务意味着任务执行完毕或执行失败。
现在,找到最后一次调度任务创建的 Pod 并查看一个 Pod 的标准输出。请注意任务名称和 Pod 名称是不同的。 现在,找到最后一次调度任务创建的 Pod 并查看一个 Pod 的标准输出。请注意任务名称和 Pod 名称是不同的。
@@ -190,7 +191,7 @@ Deleting the cron job removes all the jobs and pods it created and stops it from
You can read more about removing jobs in [garbage collection](/docs/concepts/workloads/controllers/garbage-collection/). You can read more about removing jobs in [garbage collection](/docs/concepts/workloads/controllers/garbage-collection/).
--> -->
删除 CronJob 会清除它创建的所有任务和 Pod,并阻止它创建额外的任务。你可以查阅删除任务的更多信息 [垃圾收集](/docs/concepts/workloads/controllers/garbage-collection/)。 删除 CronJob 会清除它创建的所有任务和 Pod,并阻止它创建额外的任务。你可以查阅 [垃圾收集](/docs/concepts/workloads/controllers/garbage-collection/)。
<!-- <!--
## Writing a Cron Job Spec ## Writing a Cron Job Spec
@@ -204,7 +205,7 @@ A cron job config also needs a [`.spec` section](https://git.k8s.io/community/co
## 编写CronJob声明信息 ## 编写CronJob声明信息
像 Kubernetes 的其他配置一样,CronJob需要 `apiVersion`, `kind`, and `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). CronJob 配置也需要包括[`.spec`](https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status).
@@ -212,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. All modifications to a cron job, especially its `.spec`, are applied only to the following runs.
--> -->
对CronJob的所有改动,特别是它的 `.spec`,只有在下面的执行中应用 对CronJob的所有改动,特别是它的 `.spec`,只会影响将来的运行实例
{{< /note >}} {{< /note >}}
<!-- <!--
@@ -222,7 +223,7 @@ The `.spec.schedule` is a required field of the `.spec`.
It takes a [Cron](https://en.wikipedia.org/wiki/Cron) format string, such as `0 * * * *` or `@hourly`, as schedule time of its jobs to be created and executed. It takes a [Cron](https://en.wikipedia.org/wiki/Cron) format string, such as `0 * * * *` or `@hourly`, as schedule time of its jobs to be created and executed.
--> -->
### 调度 ### 时间安排
`.spec.schedule``.spec` 需要的域。它使用了 [Cron](https://en.wikipedia.org/wiki/Cron) 格式串,例如 `0 * * * *` or `@hourly` ,做为它的任务被创建和执行的调度时间。 `.spec.schedule``.spec` 需要的域。它使用了 [Cron](https://en.wikipedia.org/wiki/Cron) 格式串,例如 `0 * * * *` or `@hourly` ,做为它的任务被创建和执行的调度时间。
@@ -313,15 +314,15 @@ Note that concurrency policy only applies to the jobs created by the same cron j
If there are multiple cron jobs, their respective jobs are always allowed to run concurrently. If there are multiple cron jobs, their respective jobs are always allowed to run concurrently.
--> -->
### 重叠规则 ### 并发性规则
`.spec.concurrencyPolicy` 也是可选的。它声明了CronJob创建的任务重叠发生时如何处理。spec 仅能声明下列规则中的一种: `.spec.concurrencyPolicy` 也是可选的。它声明了CronJob创建的任务执行时发生重叠如何处理。spec 仅能声明下列规则中的一种:
* `Allow` (默认)CronJob允许重叠执行任务 * `Allow` (默认)CronJob允许并发任务执行
* `Forbid` CronJob不允许重叠执行任务;如果新任务的执行时间到了而老任务没有执行完,CronJob会忽略新任务的执行。 * `Forbid` CronJob不允许并发任务执行;如果新任务的执行时间到了而老任务没有执行完,CronJob会忽略新任务的执行。
* `Replace`:如果新任务的执行时间到了而老任务没有执行完,CronJob会用新任务替换当前正在运行的任务。 * `Replace`:如果新任务的执行时间到了而老任务没有执行完,CronJob会用新任务替换当前正在运行的任务。
请注意,重叠规则仅适用于相同CronJob创建的任务。如果有多个CronJob,它们相应的任务总是允许重叠执行的。 请注意,并发性规则仅适用于相同CronJob创建的任务。如果有多个CronJob,它们相应的任务总是允许并发执行的。
<!-- <!--
### Suspend ### Suspend