通知を受け取る

UiPath AI Center™

UiPath AI Center™

ノードのスケジュール設定を管理

概要


📘

注:

ノードのスケジュール設定はエージェント ノードにのみ適用可能です。サーバー ノードには適用しないでください。

ノードのスケジュール設定は特に、ハードウェアの運用を効率化し、ML レプリカ (ポッド)、スキル、パイプラインを確実に処理するのに役立ちます。主に次の 2 つの状況で使用します。

  • GPU ノードがある場合に、GPU を必要とするワークロードだけがそのノードでスケジュール設定されるようにする場合
  • ML ワークロードの分離を向上させ、ML ワークロードが他のアプリケーションの妨げにならないようにする場合
    既定では、必要なリソースを持つノードは Kubernetes スケジューラーによってすべて等しいと見なされます。

ML レプリカ (ポッド)、スキル、またはパイプラインのスケジュール設定を特定のノードに移動する方法は 2 つあり、どちらの方法も UiPath AI CenterTM でサポートされています。

  • Assign Pods to Nodes using Node Affinity: this is useful when collocating ML pods with other pods on a node. Multiple labels can be applied to a node.
  • Taints and Tolerations: intended for a dedicated node, either repelling all pods (NoSchedule), or imposing a low scheduling preference (PreferNoSchedule) for pods that don't match the scheduling criteria. Although multiple taints can be applied to a node(s), node taints only support the “AND” Boolean logic.

ノード アフィニティは、ポッドを一連のノードに引き付けるポッド プロパティであり、優先条件または要件のいずれかとして設定します。これに対し、taint ではノードで一連のポッドを排除できます。
1 つ目の方法では、ノード ラベルを使用してレプリカとノードの間にアフィニティを作成します。一方、2 つ目の方法では、ノードに taint を割り当てることでアンチアフィニティを適用します。
ML レプリカの PodSpec テンプレートは、両方の方法をサポートするよう設計されており、デプロイ時に GPU または GPU なしのどちらを選択するかに基づいてカスタマイズされます。

ノード アフィニティ


エージェント ノードを追加してリソース プールを拡張している状況で、エージェント ノードでの ML ポッドのスケジュール設定に影響を与えたい場合は、ノード アフィニティを適用できます。そのためには、以下のコマンドを使用してノードにラベルを追加します。

  • CPU の場合: kubectl label node <node_name> node.type=aic.ml.cpu
  • GPU の場合: kubectl label node <node_name> node.type=aic.ml.gpu

ノード アフィニティを使用しても、ノードが確実に ML ワークロードへのサービング専用になるわけではありません。また、ラベルが適用された同じノードに、他のワークロード ポッドがスケジュール設定されなくなるわけではありません。

Taint


ノードを専用にするには、taint を使用するか、ノード アフィニティと taint を組み合わせて使用する必要があります。エージェント ノードを ML GPU ポッドまたは ML CPU ポッドへのサービング専用にするには、ノードに次の taint を適用します。

  • CPU の場合: kubectl taint node <node_name> aic.ml/cpu=present:NoSchedule
  • GPU の場合: kubectl taint node <node_name> nvidia.com/gpu=present:NoSchedule

ノード アフィニティと taint を組み合わせる


エージェント ノードを ML GPU ポッドへのサービング専用にし、同じノードへの ML CPU ポッドのスケジュール設定に影響を及ぼすには、ノード アフィニティと taint を組み合わせて使用できます。

kubectl taint node <node_name> nvidia.com/gpu=present:PreferNoSchedule
kubectl label node <node_name> node.type=aic.ml.cpu

2 か月前に更新

ノードのスケジュール設定を管理


改善の提案は、API リファレンスのページでは制限されています

改善を提案できるのは Markdown の本文コンテンツのみであり、API 仕様に行うことはできません。