View a markdown version of this page

手動隔離、取代或重新啟動節點 - Amazon SageMaker AI

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

手動隔離、取代或重新啟動節點

了解如何在與 Amazon EKS 協作的 SageMaker HyperPod 叢集中手動隔離、取代和重新啟動故障的節點。

隔離節點並強制刪除訓練 Pod

kubectl cordon <node-name>

隔離後,強制退出 Pod。當您看到 Pod 卡在終止狀態超過 30 分鐘,或 kubectl describe pod 在事件中顯示「節點尚未備妥」時,此操作很有用

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

SageMaker HyperPod 提供兩種手動節點復原的方法。偏好的方法是使用 SageMaker HyperPod 重新啟動和取代 APIs,它提供更快速、更透明的復原程序,適用於所有協調器。或者,您可以使用 kubectl 命令來標記節點以重新啟動和取代操作。這兩種方法都會啟用相同的 SageMaker HyperPod 復原程序。

使用重新啟動 API 重新啟動節點

若要重新啟動節點,您可以使用 BatchRebootClusterNodes API。

以下是使用 在叢集的兩個執行個體上執行重新啟動操作的範例 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

使用取代 API 取代節點

若要取代節點,您可以使用 BatchReplaceClusterNodes API,如下所示

以下是使用 在叢集的兩個執行個體上執行取代操作的範例 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
Karpenter 受管叢集

對於使用 Karpenter 進行節點佈建的 SageMaker HyperPod 叢集,BatchReplaceClusterNodesAPI 不保證將建立替代節點。指定的節點終止,但替換取決於 Karpenter 的 pod-demand-based佈建模型。Karpenter 只有在 Pod 處於無法排程於現有節點Pending的狀態時,才會建立新的節點。

如果來自已刪除節點的工作負載可以重新排程到叢集中的剩餘節點 (例如,如果這些節點有足夠的容量),Karpenter 不會佈建替換。若要確保已建立替換節點,請確認您的工作負載組態 (例如 Pod 反親和性規則或資源請求) 需要取代 Pod 的新節點。

我們了解此限制,並正在積極開發解決方案,以在透過 API 請求時強制執行節點替換。

使用 kubectl 取代節點

使用 sagemaker.amazonaws.com/node-health-status=UnschedulablePendingReplacement 標記要取代的節點,這會觸發 SageMaker HyperPod 自動節點復原。請注意,您也需要在叢集建立或更新期間啟用自動節點復原。

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

使用 kubectl 重新啟動節點

使用 sagemaker.amazonaws.com/node-health-status=UnschedulablePendingReboot 標記要重新啟動的節點,這會觸發 SageMaker HyperPod 自動節點復原。請注意,您也需要在叢集建立或更新期間啟用自動節點復原。

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

套用標籤UnschedulablePendingReplacementUnschedulablePendingReboot 之後,您應該能夠看到節點在幾分鐘內終止或重新啟動。