

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Einen Knoten manuell unter Quarantäne stellen, ersetzen oder neu starten
<a name="sagemaker-hyperpod-eks-resiliency-manual"></a>

Erfahren Sie, wie Sie einen fehlerhaften Knoten in SageMaker HyperPod Clustern, die mit Amazon EKS orchestriert wurden, manuell unter Quarantäne stellen, ersetzen und neu starten können.

**Um einen Knoten unter Quarantäne zu stellen und das Löschen eines Trainings-Pods zu erzwingen**

```
kubectl cordon <node-name>
```

Erzwingen Sie nach der Quarantäne das Auswerfen des Pods. Dies ist nützlich, wenn Sie sehen, dass ein Pod länger als 30 Minuten im Terminierungsmodus hängen geblieben ist oder wenn unter Ereignisse die Meldung „Knoten ist nicht bereit“ `kubectl describe pod` angezeigt wird

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

SageMaker HyperPod bietet zwei Methoden für die manuelle Wiederherstellung von Knoten. Der bevorzugte Ansatz ist die Verwendung von SageMaker HyperPod Reboot and Replace APIs, das einen schnelleren und transparenteren Wiederherstellungsprozess ermöglicht, der für alle Orchestratoren funktioniert. Alternativ können Sie kubectl-Befehle verwenden, um Knoten für Neustart- und Ersetzungsvorgänge zu kennzeichnen. Beide Methoden aktivieren dieselben SageMaker HyperPod Wiederherstellungsprozesse.

**Um einen Knoten mithilfe der Reboot-API neu zu starten**

Um einen Knoten neu zu starten, können Sie die BatchRebootClusterNodes API verwenden.

 Hier ist ein Beispiel für die Ausführung des Neustartvorgangs auf zwei Instanzen eines Clusters mithilfe von 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
```

**Um einen Knoten mithilfe der Replace-API zu ersetzen**

Um einen Knoten zu ersetzen, können Sie die BatchReplaceClusterNodes API wie folgt verwenden

 Hier ist ein Beispiel für die Ausführung des Ersetzungsvorgangs auf zwei Instanzen eines Clusters mithilfe von 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
```

**Von Karpenter verwaltete Cluster**  
Bei SageMaker HyperPod Clustern, die Karpenter für die Knotenbereitstellung verwenden, garantiert die `BatchReplaceClusterNodes` API nicht, dass ein Ersatzknoten erstellt wird. Der angegebene Knoten *wird* beendet, aber der Ersatz hängt vom Bereitstellungsmodell von Karpenter ab. pod-demand-based Karpenter erstellt nur dann neue Knoten, wenn sich Pods in einem `Pending` Zustand befinden, der nicht für bestehende Knoten geplant werden kann.  
Wenn die Arbeitslast des gelöschten Knotens auf die verbleibenden Knoten im Cluster verschoben werden kann (z. B. wenn diese Knoten über eine ausreichende Kapazität verfügen), stellt Karpenter keinen Ersatz bereit. Um sicherzustellen, dass ein Ersatzknoten erstellt wird, stellen Sie sicher, dass Ihre Workload-Konfiguration (wie Pod-Anti-Affinitätsregeln oder Ressourcenanforderungen) einen neuen Knoten für die verdrängten Pods erfordert.  
Wir sind uns dieser Einschränkung bewusst und arbeiten aktiv an einer Lösung, um den Austausch von Knoten zu erzwingen, wenn dies über die API angefordert wird.

**Um einen Knoten mit kubectl zu ersetzen**

Benennen Sie den Knoten, durch den ersetzt werden soll`sagemaker.amazonaws.com/node-health-status=UnschedulablePendingReplacement`, was den auslöst. SageMaker HyperPod [Automatische Wiederherstellung von Knoten](sagemaker-hyperpod-eks-resiliency-node-recovery.md) Beachten Sie, dass Sie auch die automatische Knotenwiederherstellung während der Clustererstellung oder -aktualisierung aktivieren müssen.

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

**Um einen Knoten mit kubectl neu zu starten**

Benennen Sie den Knoten, mit dem neu gestartet werden soll`sagemaker.amazonaws.com/node-health-status=UnschedulablePendingReboot`, was den auslöst. SageMaker HyperPod [Automatische Wiederherstellung von Knoten](sagemaker-hyperpod-eks-resiliency-node-recovery.md) Beachten Sie, dass Sie auch die automatische Knotenwiederherstellung während der Clustererstellung oder -aktualisierung aktivieren müssen.

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

Nachdem die Labels `UnschedulablePendingReplacement` oder `UnschedulablePendingReboot` hinzugefügt wurden, sollten Sie in wenigen Minuten sehen können, dass der Knoten beendet oder neu gestartet wurde. 