ai-center
2023.4
false
- 发行说明
- 在开始之前
- 入门指南
- 安装 AI Center
- 迁移和升级
- 项目
- 数据集
- 数据标签
- ML 包
- 开箱即用包
- 管道
- ML 技能
- ML 日志
- AI Center 中的 Document Understanding™
- AI Center API
- 如何
- 管理节点安排
- 许可
- 基本故障排除指南
AI Center 用户指南
Last updated 2024年10月22日
管理节点安排
注意: 节点计划仅适用于代理节点,不应应用于服务器节点。
节点计划对于更好地处理硬件并确保 ML 副本 (pod)、技能或管道尤其有用。 您应该主要在两种情况下使用它们:
- 当您有 GPU 节点时,请确保在该节点上仅计划需要 GPU 的工作负载
- 为了更好地隔离 ML 工作负载,使其不会干扰其他应用程序。
默认情况下,Kubernetes 调度程序将具有所需资源的所有节点视为相同。
您可以使用UiPath AI Center支持的两种方法将 ML 副本 (Pod)、技能或管道计划定向到特定节点:
- 使用节点关联性将 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