From 91496f2b02d46ba7cd6fed8dba7ceb8ed4ee67d3 Mon Sep 17 00:00:00 2001 From: chentanjun <2799194073@qq.com> Date: Thu, 2 Jan 2020 13:15:40 +0800 Subject: [PATCH] udpate zh-trans content/zh/docs/tasks/administer-cluster/topology-manager.md (#18346) --- .../administer-cluster/topology-manager.md | 84 +++++++++++++++---- 1 file changed, 70 insertions(+), 14 deletions(-) diff --git a/content/zh/docs/tasks/administer-cluster/topology-manager.md b/content/zh/docs/tasks/administer-cluster/topology-manager.md index de0cd2512d..547dfd6638 100644 --- a/content/zh/docs/tasks/administer-cluster/topology-manager.md +++ b/content/zh/docs/tasks/administer-cluster/topology-manager.md @@ -102,15 +102,15 @@ The Topology Manager currently: -- 在启用了 `static` CPU 管理器策略的节点上起作用。 请参阅 [控制 CPU 管理策略](/docs/tasks/administer-cluster/cpu-management-policies/) -- 对{{< glossary_tooltip text="QoS 类" term_id="qos-class" >}}取值为 `Guaranteed` 的 Pods 起作用 +- 在启用了 `static` CPU 管理器策略的节点上起作用。 请参阅[控制 CPU 管理策略](/docs/tasks/administer-cluster/cpu-management-policies/) +- 适用于通过扩展资源发出 CPU 请求或设备请求的 Pod -如果满足这些条件,则拓扑管理器将综合考虑 CPU 和设备请求。 +如果满足这些条件,则拓扑管理器将调整请求的资源。 +一旦 Pod 处于 `Terminated` 状态,Kubernetes 调度器将不会尝试重新调度该 Pod。建议使用 ReplicaSet 或者 Deployment 来重新部署 Pod。 +还可以通过实现外部控制环,以启动对具有 `Topology Affinity` 错误的 Pod 的重新部署。 + +一旦 Pod 处于 `Terminated` 状态,Kubernetes 调度器将不会尝试重新调度该 Pod。建议使用 ReplicaSet 或者 Deployment 来重新部署 Pod。 +还可以通过实现外部控制环,以触发具有 `Topology Affinity` 错误的 Pod 的重新部署。 此 Pod 在 `Guaranteed` QoS 类中运行,因为其 `requests` 值等于 `limits` 值。 + +```yaml +spec: + containers: + - name: nginx + image: nginx + resources: + limits: + example.com/deviceA: "1" + example.com/deviceB: "1" + requests: + example.com/deviceA: "1" + example.com/deviceB: "1" +``` -拓扑管理器会对此 Pod 进行评估处理。 -拓扑管理器首先调用 CPU 管理器的 `static` 策略,该策略返回可用 CPU 的拓扑信息。 -拓扑管理器还咨询设备管理器以获得可用的 example.com/device 设备的拓扑信息。 +由于没有 CPU 和内存请求,因此该 Pod 在 `BestEffort` QoS 类中运行。 -拓扑管理器将使用此信息来存储此容器的最佳拓扑。 -对于此 Pod, CPU 和设备管理器将在资源分配阶段使用这里存储的信息。 +拓扑管理器将考虑以上两个 Pod。拓扑管理器将咨询 CPU 和设备管理器,以获取 Pod 的拓扑提示。 +对于 `Guaranteed` Pod,`static` CPU 管理器策略将返回与 CPU 请求有关的提示,而设备管理器将返回有关所请求设备的提示。 + + +对于 `BestEffort` Pod,由于没有 CPU 请求,CPU 管理器将发送默认提示,而设备管理器将为每个请求的设备发送提示。 + + +使用此信息,拓扑管理器将为 Pod 计算最佳提示并存储该信息,并且供提示提供程序在进行资源分配时使用。 + + +### 已知的局限性 + +1. 从 K8s 1.16 开始,当前只能在保证 Pod 规范中的 *单个* 容器需要相匹配的资源时,拓扑管理器才能正常工作。这是由于生成的提示信息是基于当前资源分配的,并且 pod 中的所有容器都会在进行任何资源分配之前生成提示信息。这样会导致除 Pod 中的第一个容器以外的所有容器生成不可靠的提示信息。 +* 由于此限制,如果 kubelet 快速连续考虑多个 Pod/容器,它们可能不遵守拓扑管理器策略。 + + +2. 拓扑管理器允许的最大 NUMA 节点数为 8,并且在尝试枚举可能的 NUMA 关联并生成其提示信息时,将出现状态问题。 + + +3. 调度器不支持拓扑功能,因此可能会由于拓扑管理器的原因而在节点上进行调度,然后在该节点上调度失败。 + {{% /capture %}} -