View a markdown version of this page

Mise en quarantaine, remplacement ou redémarrage manuels d’un nœud - Amazon SageMaker AI

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Mise en quarantaine, remplacement ou redémarrage manuels d’un nœud

Découvrez comment mettre en quarantaine, remplacer et redémarrer manuellement un nœud défectueux dans des SageMaker HyperPod clusters orchestrés avec Amazon EKS.

Pour mettre un nœud en quarantaine et forcer la suppression d’un pod d’entraînement

kubectl cordon <node-name>

Après la quarantaine, expulsez de force le pod. Ceci est utile lorsque vous constatez qu’un pod est bloqué en phase de résiliation pendant plus de 30 minutes ou que kubectl describe pod affiche « Le nœud n’est pas prêt » dans Événements

kubectl delete pods <pod-name> --grace-period=0 --force

SageMaker HyperPod propose deux méthodes pour la restauration manuelle des nœuds. L'approche préférée consiste à utiliser le SageMaker HyperPod redémarrage et le remplacement APIs, qui fournissent un processus de restauration plus rapide et plus transparent qui fonctionne sur tous les orchestrateurs. Vous pouvez également utiliser les commandes kubectl pour étiqueter les nœuds pour les opérations de redémarrage et de remplacement. Les deux méthodes activent les mêmes processus SageMaker HyperPod de restauration.

Pour redémarrer un nœud à l'aide de l'API de redémarrage

Pour redémarrer un nœud, vous pouvez utiliser l' BatchRebootClusterNodes API.

Voici un exemple d'exécution de l'opération de redémarrage sur deux instances d'un cluster à l'aide de AWS Command Line Interface :

aws sagemaker batch-reboot-cluster-nodes \ --cluster-name arn:aws:sagemaker:ap-northeast-1:123456789:cluster/test-cluster \ --node-ids i-0123456789abcdef0 i-0fedcba9876543210

Pour remplacer un nœud à l'aide de l'API Replace

Pour remplacer un nœud, vous pouvez utiliser l' BatchReplaceClusterNodes API comme suit

Voici un exemple d'exécution de l'opération de remplacement sur deux instances d'un cluster à l'aide de AWS Command Line Interface :

aws sagemaker batch-replace-cluster-nodes \ --cluster-name arn:aws:sagemaker:ap-northeast-1:123456789:cluster/test-cluster \ --node-ids i-0123456789abcdef0 i-0fedcba9876543210
Clusters gérés par Karpenter

Pour les SageMaker HyperPod clusters utilisant Karpenter pour le provisionnement des nœuds, l'BatchReplaceClusterNodesAPI ne garantit pas la création d'un nœud de remplacement. Le nœud spécifié sera résilié, mais son remplacement dépend du modèle de pod-demand-based provisionnement de Karpenter. Karpenter ne crée de nouveaux nœuds que lorsqu'il existe des pods dans un Pending état qui ne peut pas être planifié sur des nœuds existants.

Si la charge de travail du nœud supprimé peut être replanifiée sur les nœuds restants du cluster (par exemple, si ces nœuds ont une capacité suffisante), Karpenter ne fournit pas de solution de remplacement. Pour garantir la création d'un nœud de remplacement, vérifiez que la configuration de votre charge de travail (telle que les règles anti-affinité des pods ou les demandes de ressources) nécessite un nouveau nœud pour les pods déplacés.

Nous sommes conscients de cette limitation et travaillons activement sur une solution permettant d'imposer le remplacement des nœuds lorsque cela est demandé via l'API.

Pour remplacer un nœud à l'aide de kubectl

Étiquetez le nœud à remplacersagemaker.amazonaws.com/node-health-status=UnschedulablePendingReplacement, ce qui déclenche le SageMaker HyperPod Récupération automatique des nœuds. Notez que vous devez également activer la récupération automatique des nœuds lors de la création ou de la mise à jour du cluster.

kubectl label nodes <node-name> \ sagemaker.amazonaws.com/node-health-status=UnschedulablePendingReplacement

Pour redémarrer un nœud à l'aide de kubectl

Étiquetez le nœud avec lequel redémarrersagemaker.amazonaws.com/node-health-status=UnschedulablePendingReboot, ce qui déclenche le SageMaker HyperPod Récupération automatique des nœuds. Notez que vous devez également activer la récupération automatique des nœuds lors de la création ou de la mise à jour du cluster.

kubectl label nodes <node-name> \ sagemaker.amazonaws.com/node-health-status=UnschedulablePendingReboot

Une fois les étiquettes UnschedulablePendingReplacement UnschedulablePendingReboot appliquées, vous devriez être en mesure de voir que le nœud est arrêté ou redémarré dans quelques minutes.