

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
<a name="sagemaker-hyperpod-eks-resiliency-manual"></a>

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'`BatchReplaceClusterNodes`API 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 à remplacer`sagemaker.amazonaws.com/node-health-status=UnschedulablePendingReplacement`, ce qui déclenche le SageMaker HyperPod [Récupération automatique des nœuds](sagemaker-hyperpod-eks-resiliency-node-recovery.md). 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émarrer`sagemaker.amazonaws.com/node-health-status=UnschedulablePendingReboot`, ce qui déclenche le SageMaker HyperPod [Récupération automatique des nœuds](sagemaker-hyperpod-eks-resiliency-node-recovery.md). 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. 