7.2. 拓扑管理器策略

拓扑管理器可用于满足以下条件的节点和 Pod 中:

  • 节点的 CPU Manager 策略配置为 static
  • Pod 是 Guaranteed QoS 类。

当满足以上条件时,Topology Manager 会对 Pod 的 CPU 和设备请求进行调整。

拓扑管理器支持 4 个分配策略。这些策略通过 Kubelet 标志 --topology-manager-policy 进行设置。策略包括:

  • none (默认)
  • best-effort
  • restricted
  • single-numa-node

7.2.1. none 策略

这是默认策略,不执行任何拓扑对齐调整。

7.2.2. best-effort 策略

对于带有 best-effort 拓扑管理策略的 Guaranteed Pod 中的每个容器,kublet 会调用每个 Hint 提供者来发现其资源的可用性。使用这些信息,拓扑管理器会保存那个容器的首选 NUMA 节点关联性设置。如果关联性没有被首选设置,则拓扑管理器会保存这个设置,并把 pod 分配给节点。

7.2.3. restricted 策略

对于带有 restricted 拓扑管理策略的 Guaranteed Pod 中的每个容器,kublet 会调用每个 Hint 提供者来发现其资源的可用性。使用这些信息,拓扑管理器会保存那个容器的首选 NUMA 节点关联性设置。如果关联性没有被首选,则拓扑管理器会使节点拒绝该 pod。这会导致 pod 处于 Terminated 状态,且 pod 准入失败。

7.2.4. single-numa-node

对于带有 single-numa-node 拓扑管理策略的 Guaranteed Pod 中的每个容器,kublet 会调用每个 Hint 提供者来发现其资源的可用性。使用这个信息,拓扑管理器会决定单个 NUMA 节点关联性是否可能。如果可能,pod 将会分配给该节点。如果不可能,则拓扑管理器将使节点拒绝 pod。这会导致 pod 处于 Terminated 状态,且 pod 准入失败。