ai-center
2024.10
true
- 发行说明
- 在开始之前
- 入门指南
- 安装 AI Center
- 迁移和升级
- 项目
- 数据集
- 数据标签
- ML 包
- 开箱即用包
- 管道
- ML 技能
- ML 日志
- AI Center 中的 Document Understanding™
- AI Center API
- 如何
- 管理节点安排
- 许可
- 基本故障排除指南
AI Center 用户指南
Last updated 2024年11月11日
管理节点安排
注意: 节点计划仅适用于代理节点,不应应用于服务器节点。
节点计划对于更好地处理硬件并确保 ML 副本 (pod)、技能或管道尤其有用。 您应该主要在两种情况下使用它们:
- 当您有 GPU 节点时,请确保在该节点上仅计划需要 GPU 的工作负载
- 为了更好地隔离 ML 工作负载,使其不会干扰其他应用程序。
默认情况下,Kubernetes 调度程序将具有所需资源的所有节点视为相同。
There are two methods in which you can direct the scheduling of ML replicas (pods), skills, or pipelines to specific nodes, and both are supported in UiPath® AI Center:
- 使用节点关联性将 Pod 分配给节点:这在将 ML Pod 与节点上的其他 Pod 并置时非常有用。 可以将多个标签应用于一个节点。
- 污点和容忍度:适用于专用节点,可以排斥所有 Pod (
NoSchedule
),或对与计划条件不匹配的 Pod 施加较低的计划首选项 (PreferNoSchedule
)。 虽然可以将多个污点应用于节点,但节点污点仅支持“AND”布尔逻辑。
节点亲和性是 Pod 的一个属性,可将 Pod 作为首选项或要求吸引到一组节点。 另一方面,污点允许节点排斥一组 Pod。
第一种方法使用节点标签在副本和节点之间创建亲和性,而第二种方法通过污染节点来应用反亲和性。
ML 副本的
PodSpec
模板旨在支持这两种方法,并根据部署时的 GPU 或非 GPU 选择进行自定义。
如果已添加代理节点以扩展资源池,并且您希望影响其上 ML Pod 的计划,则可以应用节点关联性。 为此,请使用以下命令向节点添加标签:
- 对于 CPU:
kubectl label node <node_name> node.type=aic.ml.cpu
- 对于 GPU:
kubectl label node <node_name> node.type=aic.ml.gpu
节点关联性不能确保节点专用于为 ML 工作负载提供服务,也不会阻止其他工作负载 Pod 调度到应用标签的同一节点。
要专用节点,您需要使用污点或节点关联性和污点的组合。 要将代理节点专用于为 ML GPU 或 CPU Pod 提供服务,您可以将以下污点应用于节点:
- 对于 CPU:
kubectl taint node <node_name> aic.ml/cpu=present:NoSchedule
- 对于 GPU:
kubectl taint node <node_name> nvidia.com/gpu=present:NoSchedule
要将代理节点专用于 ML GPU Pod 并对同一节点使用 ML CPU Pod 的安排产生影响,您可以结合使用节点关联和污点:
kubectl taint node <node_name> nvidia.com/gpu=present:PreferNoSchedule
kubectl label node <node_name> node.type=aic.ml.cpu
kubectl taint node <node_name> nvidia.com/gpu=present:PreferNoSchedule
kubectl label node <node_name> node.type=aic.ml.cpu