From 22c0708cdfabbf90c2c365d23d0085c8b0e754dc Mon Sep 17 00:00:00 2001 From: kinzhi Date: Sun, 24 Apr 2022 18:49:36 +0800 Subject: [PATCH] [zh]update content/zh/docs/concepts/workloads/controllers/job.md (#33157) * [zh]update content/zh/docs/concepts/workloads/controllers/job.md * [zh]update content/zh/docs/concepts/workloads/controllers/job.md * Update content/zh/docs/concepts/workloads/controllers/job.md Co-authored-by: Qiming Teng * Update content/zh/docs/concepts/workloads/controllers/job.md Co-authored-by: Qiming Teng * Update content/zh/docs/concepts/workloads/controllers/job.md Co-authored-by: Qiming Teng * Update content/zh/docs/concepts/workloads/controllers/job.md Co-authored-by: Qiming Teng * Update content/zh/docs/concepts/workloads/controllers/job.md Co-authored-by: Qiming Teng * Update content/zh/docs/concepts/workloads/controllers/job.md Co-authored-by: Qiming Teng * [zh]update content/zh/docs/concepts/workloads/controllers/job.md Co-authored-by: Qiming Teng --- .../concepts/workloads/controllers/job.md | 88 ++++++++++++++++--- 1 file changed, 75 insertions(+), 13 deletions(-) diff --git a/content/zh/docs/concepts/workloads/controllers/job.md b/content/zh/docs/concepts/workloads/controllers/job.md index a438294af6..99edfabf76 100644 --- a/content/zh/docs/concepts/workloads/controllers/job.md +++ b/content/zh/docs/concepts/workloads/controllers/job.md @@ -561,7 +561,7 @@ cleaned up by CronJobs based on the specified capacity-based cleanup policy. ### 已完成 Job 的 TTL 机制 {#ttl-mechanisms-for-finished-jobs} -{{< feature-state for_k8s_version="v1.21" state="beta" >}} +{{< feature-state for_k8s_version="v1.23" state="stable" >}} +Job 被创建时,Job 控制器会马上开始执行 Pod 创建操作以满足 Job 的需求, +并持续执行此操作直到 Job 完成为止。 +不过你可能想要暂时挂起 Job 执行,或启动处于挂起状态的job, +并拥有一个自定义控制器以后再决定什么时候开始。 + + -Job 被创建时,Job 控制器会马上开始执行 Pod 创建操作以满足 Job 的需求, -并持续执行此操作直到 Job 完成为止。 -不过你可能想要暂时挂起 Job 执行,之后再恢复其执行。 -要挂起一个 Job,你可以将 Job 的 `.spec.suspend` 字段更新为 true。 +要挂起一个 Job,你可以更新 `.spec.suspend` 字段为 true, 之后,当你希望恢复其执行时,将其更新为 false。 创建一个 `.spec.suspend` 被设置为 true 的 Job 本质上会将其创建为被挂起状态。 @@ -858,6 +864,61 @@ as soon as the Job was resumed. 字段值被改来改去造成的。在这两个事件之间,我们看到没有 Pod 被创建,不过当 Job 被恢复执行时,Pod 创建操作立即被重启执行。 + +### 可变调度指令 {#mutable-scheduling-directives} + +{{< feature-state for_k8s_version="v1.23" state="beta" >}} + + +{{< note >}} +为了使用此功能,你必须在 [API 服务器](/zh/docs/reference/command-line-tools-reference/kube-apiserver/)上启用 +`JobMutableNodeSchedulingDirectives` [特性门控](/zh/docs/reference/command-line-tools-reference/feature-gates/)。 +默认情况下启用。 +{{< /note >}} + + +在大多数情况下,并行作业会希望 Pod 在一定约束条件下运行, +比如所有的 Pod 都在同一个区域,或者所有的 Pod 都在 GPU 型号 x 或 y 上,而不是两者的混合。 + + +[suspend](#suspend-a-job) 字段是实现这些语义的第一步。 +suspend 允许自定义队列控制器,以决定工作何时开始;然而,一旦工作被取消暂停, +自定义队列控制器对 Job 中 Pods 的实际放置位置没有影响。 + + +此特性允许在 Job 开始之前更新调度指令,从而为定制队列提供影响 Pod +放置的能力,同时将 Pod 与节点间的分配关系留给 kube-scheduler 决定。 +这一特性仅适用于之前从未被暂停过的、已暂停的 Job。 +控制器能够影响 Pod 放置,同时参考实际 +pod-to-node 分配给 kube-scheduler。这仅适用于从未暂停的 Jobs。 + + +Job 的 Pod 模板中可以更新的字段是节点亲和性、节点选择器、容忍、标签和注解。 + + + 新的 Job 自身会有一个不同于 `a8f3d00d-c6d2-11e5-9f87-42010af00002` 的唯一 ID。 @@ -978,24 +1039,25 @@ In order to use this behavior, you must enable the `JobTrackingWithFinalizers` [feature gate](/docs/reference/command-line-tools-reference/feature-gates/) on the [API server](/docs/reference/command-line-tools-reference/kube-apiserver/) and the [controller manager](/docs/reference/command-line-tools-reference/kube-controller-manager/). -It is disabled by default. +It is enabled by default. When enabled, the control plane tracks new Jobs using the behavior described -below. Existing Jobs are unaffected. As a user, the only difference you would -see is that the control plane tracking of Job completion is more accurate. +below. Jobs created before the feature was enabled are unaffected. As a user, +the only difference you would see is that the control plane tracking of Job +completion is more accurate. --> ### 使用 Finalizer 追踪 Job {#job-tracking-with-finalizers} -{{< feature-state for_k8s_version="v1.22" state="alpha" >}} +{{< feature-state for_k8s_version="v1.23" state="beta" >}} {{< note >}} 要使用该行为,你必须为 [API 服务器](/zh/docs/reference/command-line-tools-reference/kube-apiserver/) 和[控制器管理器](/zh/docs/reference/command-line-tools-reference/kube-controller-manager/) 启用 `JobTrackingWithFinalizers` [特性门控](/zh/docs/reference/command-line-tools-reference/feature-gates/)。 -默认是禁用的。 +默认是启用的。 -启用后,控制面基于下述行为追踪新的 Job。现有 Job 不受影响。 +启用后,控制面基于下述行为追踪新的 Job。在启用该特性之前创建的 Job 不受影响。 作为用户,你会看到的唯一区别是控制面对 Job 完成情况的跟踪更加准确。 {{< /note >}}