将工作负载调度到特定的 GPU 节点
在定义 Hardware Profile 时,通常需要确保 AI 推理工作负载被严格调度到具有特定类型 GPU(例如 NVIDIA A100 或 H100)的节点上,并且该工作负载能够容忍这些专用节点上的污点,以避免常规 CPU 工作负载占用 GPU 节点。
本指南演示如何在 Hardware Profile 中配置这些约束,以便你的数据科学家无需手动配置它们。
使用节点选择器
节点选择器允许你基于节点标签将 Pod 引导到特定节点。
- 找到集群中 GPU 节点的准确 Kubernetes 标签。例如:
accelerator: nvidia-a100nvidia.com/gpu.present: "true"
- 编辑或创建你的 Hardware Profile。
- 在 Node Selectors 部分,添加与该标签对应的键值对:
- Key:
accelerator - Value:
nvidia-a100
- Key:
保存后,任何尝试使用此 Hardware Profile 的推理服务都会自动获得该节点选择器,确保它只会被调度到具有 A100 GPU 的节点上。
使用污点和容忍
集群管理员经常会对 GPU 节点设置“污点”,以便标准 Pod(例如 Web 服务器或通用数据库)不会被调度到这些节点上,从而将 GPU 计算能力保留给 AI 工作负载。
如果你的 GPU 节点带有类似 nvidia.com/gpu:NoSchedule 的污点,那么你的 Hardware Profile 必须包含对应的容忍。
- 在 Hardware Profile 的 Tolerations 部分添加一个新的容忍。
- 将其配置为匹配 GPU 节点上的污点:
- Key:
nvidia.com/gpu - Operator:
Exists(这表示容忍nvidia.com/gpu键的任意值。或者,也可以使用Equal并显式设置 Value。) - Effect:
NoSchedule(匹配该污点的限制性效果)
- Key:
通过向 Hardware Profile 添加此容忍,部署的推理服务将被明确授予调度到专用 GPU 节点上的“权限”。
组合配置
通过将 Node Selector(指示调度器要去哪里)和 Toleration(允许调度器将其放置在那里)结合起来,你的 Hardware Profile 实际上就成为异构节点架构的可靠蓝图。