

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# ノードを手動で隔離、置き換え、または再起動する
<a name="sagemaker-hyperpod-eks-resiliency-manual"></a>

Amazon EKS とオーケストレーションされた SageMaker HyperPod クラスターの障害のあるノードを手動で隔離、置き換え、再起動する方法について説明します。

**ノードを隔離し、トレーニングポッドを強制的に削除するには**

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

隔離後、ポッドを強制的に取り出します。これは、ポッドが 30 分以上終了状態のままになっているか、`kubectl describe pod` のイベントで「ノードの準備ができていません」と表示される場合に便利です。

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

SageMaker HyperPod には、手動ノード復旧のための 2 つの方法があります。推奨されるアプローチは、SageMaker HyperPod Reboot and Replace APIs を使用することです。これにより、すべてのオーケストレーターで動作するより高速で透過的な復旧プロセスが提供されます。または、kubectl コマンドを使用して、再起動および置換オペレーションのためにノードにラベルを付けることもできます。どちらの方法でも、同じ SageMaker HyperPod 復旧プロセスがアクティブ化されます。

**Reboot API を使用してノードを再起動するには**

ノードを再起動するには、BatchRebootClusterNodes API を使用できます。

 を使用してクラスターの 2 つのインスタンスで再起動オペレーションを実行する例を次に示します 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
```

**Replace API を使用してノードを置き換えるには**

ノードを置き換えるには、次のように BatchReplaceClusterNodes API を使用できます。

 を使用してクラスターの 2 つのインスタンスで置換オペレーションを実行する例を次に示します 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 クラスターの場合、`BatchReplaceClusterNodes`API は代替ノードが作成されることを保証しません。指定されたノード*は*終了しますが、置き換えは Karpenter のpod-demand-basedプロビジョニングモデルによって異なります。Karpenter は、既存のノードでスケジュールできない`Pending`状態のポッドがある場合にのみ新しいノードを作成します。  
削除されたノードのワークロードをクラスター内の残りのノードに再スケジュールできる場合 (たとえば、それらのノードに十分な容量がある場合）、Karpenter は置き換えをプロビジョニングしません。代替ノードが作成されるようにするには、ワークロード設定 (ポッドアンチアフィニティルールやリソースリクエストなど) で、置き換えられたポッドに新しいノードが必要であることを確認します。  
この制限を認識しており、API を通じてリクエストされた場合にノード交換を強制するソリューションに積極的に取り組んでいます。

**kubectl を使用してノードを置き換えるには**

`sagemaker.amazonaws.com/node-health-status=UnschedulablePendingReplacement` で置き換えて SageMaker HyperPod [自動ノード復旧](sagemaker-hyperpod-eks-resiliency-node-recovery.md) をトリガーするよう、ノードにラベルを付けます。クラスターの作成または更新中に自動ノード復旧をアクティブ化する必要もあることに注意してください。

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

**kubectl を使用してノードを再起動するには**

`sagemaker.amazonaws.com/node-health-status=UnschedulablePendingReboot` で再起動して SageMaker HyperPod [自動ノード復旧](sagemaker-hyperpod-eks-resiliency-node-recovery.md) をトリガーするよう、ノードにラベルを付けます。クラスターの作成または更新中に自動ノード復旧をアクティブ化する必要もあることに注意してください。

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

ラベル`UnschedulablePendingReplacement`または `UnschedulablePendingReboot`が適用されると、数分でノードが終了または再起動されるのを確認できます。