View a markdown version of this page

Einen Knoten manuell unter Quarantäne stellen, ersetzen oder neu starten - Amazon SageMaker KI

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

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 sollsagemaker.amazonaws.com/node-health-status=UnschedulablePendingReplacement, was den auslöst. SageMaker HyperPod Automatische Wiederherstellung von Knoten 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 sollsagemaker.amazonaws.com/node-health-status=UnschedulablePendingReboot, was den auslöst. SageMaker HyperPod Automatische Wiederherstellung von Knoten 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.