AI Center
2021.10
False
Image de fond de la bannière
AI Center - Guide d'installation
Dernière mise à jour 11 mars 2024

Gérer la planification des nœuds

Vue d'ensemble (Overview)

Remarque : la planification des nœuds ne s'applique qu'aux nœuds d'agent et ne doit pas être appliquée aux nœuds de serveur.

La planification des nœuds est particulièrement utile pour mieux gérer le matériel et s'assurer que les réplicas ML (pods), les compétences ou les pipelines. Vous devez les utiliser principalement dans deux situations :

  • Lorsque vous avez un nœud GPU pour vous assurer que seule la charge de travail nécessitant un GPU est planifiée sur ce nœud
  • Pour mieux isoler vos charges de travail ML afin qu'elles ne perturbent pas les autres applications.

    Par défaut, tous les nœuds disposant des ressources requises sont considérés comme égaux par le planificateur kubernetes.

Il existe deux méthodes par lesquelles vous pouvez diriger la planification des réplicas ML (pods), des compétences ou des pipelines vers des nœuds spécifiques, et les deux sont prises en charge dans UiPath AI Center™ :

  • Attribuer des pods aux nœuds à l'aide de l'affinité du nœud (Node Affinity) : cela est utile lors de la colocalisation de pods ML avec d'autres pods sur un nœud. Plusieurs libellés peuvent être appliqués à un nœud.
  • Rejets et tolérances : destiné à un nœud dédié, repoussant tous les pods ( NoSchedule ) ou imposant une faible préférence de planification ( PreferNoSchedule ) pour les pods qui ne correspondent pas aux critères de planification. Bien que plusieurs rejets puissent être appliqués à un ou plusieurs nœuds, les rejets de nœud ne prennent en charge que la logique booléenne « AND ».

L'affinité de nœud est une propriété des pods qui les attire vers un ensemble de nœuds, soit en tant que préférence, soit en tant qu'exigence. Les rejets, en revanche, permettent à un nœud de repousser un ensemble de pods.

La première méthode crée une affinité entre les réplicas et les nœuds à l'aide de libellés de nœud, tandis que la seconde méthode applique l'anti-affinité en entachant les nœuds.

Les modèles PodSpec des réplicas ML sont conçus pour prendre en charge les deux méthodes et sont personnalisés en fonction de la sélection GPU ou non GPU lors du déploiement.

Affinité de nœud

Dans le cas où un nœud d'agent a été ajouté pour étendre le pool de ressources et que vous souhaitez influencer la planification des pods ML dessus, vous pouvez appliquer l'affinité de nœud. Pour ce faire, ajoutez un libellé au nœud à l'aide de la commande suivante :

  • Pour le processeur : kubectl label node <node_name> node.type=aic.ml.cpu
  • Pour le GPU : kubectl label node <node_name> node.type=aic.ml.gpu

L'affinité de nœud ne garantit pas que le nœud est dédié au service des charges de travail ML et n'empêche pas la planification d'autres pods de charge de travail sur le même nœud où les libellés sont appliqués.

Rejets

Pour dédier un nœud, vous devez utiliser des rejets ou une combinaison d'affinité de nœud et de rejets. Pour dédier un nœud d'agent au service de pods GPU ou CPU ML, vous pouvez appliquer les rejets suivants aux nœuds :

  • Pour le processeur : kubectl taint node <node_name> aic.ml/cpu=present:NoSchedule
  • Pour le GPU : kubectl taint node <node_name> nvidia.com/gpu=present:NoSchedule

Combinaison de l’affinité de nœud et des rejets

Pour dédier un nœud d'agent au service des pods GPU ML et à la planification d'influence des pods CPU ML aux mêmes nœuds, vous pouvez utiliser une combinaison d'affinité de nœud et de rejets :

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

Cette page vous a-t-elle été utile ?

Obtenez l'aide dont vous avez besoin
Formation RPA - Cours d'automatisation
Forum de la communauté UiPath
Logo Uipath blanc
Confiance et sécurité
© 2005-2024 UiPath. All rights reserved.