将工作负载调度到特定的 GPU 节点

在定义 Hardware Profile 时,通常需要确保 AI 推理工作负载被严格调度到具有特定类型 GPU(例如 NVIDIA A100 或 H100)的节点上,并且该工作负载能够容忍这些专用节点上的污点,以避免常规 CPU 工作负载占用 GPU 节点。

本指南演示如何在 Hardware Profile 中配置这些约束,以便你的数据科学家无需手动配置它们。

使用节点选择器

节点选择器允许你基于节点标签将 Pod 引导到特定节点。

  1. 找到集群中 GPU 节点的准确 Kubernetes 标签。例如:
    • accelerator: nvidia-a100
    • nvidia.com/gpu.present: "true"
  2. 编辑或创建你的 Hardware Profile。
  3. Node Selectors 部分,添加与该标签对应的键值对:
    • Key: accelerator
    • Value: nvidia-a100

保存后,任何尝试使用此 Hardware Profile 的推理服务都会自动获得该节点选择器,确保它只会被调度到具有 A100 GPU 的节点上。

使用污点和容忍

集群管理员经常会对 GPU 节点设置“污点”,以便标准 Pod(例如 Web 服务器或通用数据库)不会被调度到这些节点上,从而将 GPU 计算能力保留给 AI 工作负载。

如果你的 GPU 节点带有类似 nvidia.com/gpu:NoSchedule 的污点,那么你的 Hardware Profile 必须包含对应的容忍。

  1. 在 Hardware Profile 的 Tolerations 部分添加一个新的容忍。
  2. 将其配置为匹配 GPU 节点上的污点:
    • Key: nvidia.com/gpu
    • Operator: Exists(这表示容忍 nvidia.com/gpu 键的任意值。或者,也可以使用 Equal 并显式设置 Value。)
    • Effect: NoSchedule(匹配该污点的限制性效果)

通过向 Hardware Profile 添加此容忍,部署的推理服务将被明确授予调度到专用 GPU 节点上的“权限”。

组合配置

通过将 Node Selector(指示调度器要去哪里)和 Toleration(允许调度器将其放置在那里)结合起来,你的 Hardware Profile 实际上就成为异构节点架构的可靠蓝图。