From 53ce42017f1d70b2a34638e6e484eefd83275a48 Mon Sep 17 00:00:00 2001 From: jzhupup Date: Thu, 25 Aug 2022 09:16:47 +0800 Subject: [PATCH] [zh-cn] sync1.25 disruptions.md --- .../concepts/workloads/pods/disruptions.md | 82 +++++++++++++++++++ 1 file changed, 82 insertions(+) diff --git a/content/zh-cn/docs/concepts/workloads/pods/disruptions.md b/content/zh-cn/docs/concepts/workloads/pods/disruptions.md index 24e7ac25dc..f587d571c8 100644 --- a/content/zh-cn/docs/concepts/workloads/pods/disruptions.md +++ b/content/zh-cn/docs/concepts/workloads/pods/disruptions.md @@ -432,6 +432,88 @@ can happen, according to: - 控制器的类型 - 集群的资源能力 + +## Pod 干扰状况 {#pod-disruption-conditions} + +{{< feature-state for_k8s_version="v1.25" state="alpha" >}} + +{{< note >}} + +要使用此行为,你必须在集群中启用 `PodDisruptionsCondition` +[特性门控](/zh-cn/docs/reference/command-line-tools-reference/feature-gates/)。 +{{< /note >}} + + +启用后,会给 Pod 添加一个 `DisruptionTarget` +[状况](/zh-cn/docs/concepts/workloads/pods/pod-lifecycle/#pod-conditions), +用来表明该 Pod 因为发生{{}}而被删除。 +状况中的 `reason` 字段进一步给出 Pod 终止的原因,如下: + + +`PreemptionByKubeScheduler` +: Pod 将被调度器{{}}, +目的是接受优先级更高的新 Pod。 +要了解更多的相关信息,请参阅 [Pod 优先级和抢占](/zh-cn/docs/concepts/scheduling-eviction/pod-priority-preemption/)。 + + +`DeletionByTaintManager` +: 由于 Pod 不能容忍 `NoExecute` 污点,Pod 将被 +Taint Manager(`kube-controller-manager` 中节点生命周期控制器的一部分)删除; +请参阅基于{{}}的驱逐。 + + +`EvictionByEvictionAPI` +: Pod 已被标记为{{}}。 + + +`DeletionByPodGC` +: 绑定到一个不再存在的 Node 上的 Pod 将被 +[Pod 垃圾收集](/zh-cn/docs/concepts/workloads/pods/pod-lifecycle/#pod-garbage-collection)删除。 + +{{< note >}} + +Pod 的干扰可能会被中断。控制平面可能会重新尝试继续干扰同一个 Pod,但这没办法保证。 +因此,`DisruptionTarget` 条件可能会添被加到 Pod 上, +但该 Pod 实际上可能不会被删除。 +在这种情况下,一段时间后,Pod 干扰状况将被清除。 +{{< /note >}} + + +使用 Job(或 CronJob)时,你可能希望将这些 Pod 干扰状况作为 Job +[Pod 失效策略](/zh-cn/docs/concepts/workloads/controllers/job#pod-failure-policy)的一部分。 +