

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

# SageMaker AI コンソールを使用した推論オペレーターのインストールの失敗
<a name="sagemaker-hyperpod-model-deployment-ts-console-cfn-failures"></a>

**概要:** クイックインストールまたはカスタムインストールを使用して SageMaker AI コンソールから推論演算子をインストールすると、基盤となる CloudFormation スタックがさまざまな問題により失敗することがあります。このセクションでは、一般的な障害シナリオとその解決方法について説明します。

## クイックインストールまたはカスタムインストールによる推論演算子アドオンのインストール失敗
<a name="sagemaker-hyperpod-model-deployment-ts-console-cfn-stack-failed"></a>

**問題:** HyperPod クラスターの作成は正常に完了しましたが、推論演算子のアドオンのインストールは失敗します。

**一般的な原因:**
+ クラスターノードのポッド容量制限を超えました。推論演算子のインストールには、少なくとも 13 個のポッドが必要です。最小推奨インスタンスタイプは です`ml.c5.4xlarge`。
+ IAM アクセス許可の問題
+ リソースクォータの制約
+ ネットワークまたは VPC 設定の問題

### 症状と診断
<a name="sagemaker-hyperpod-model-deployment-ts-console-cfn-symptoms"></a>

**症状:**
+ 推論演算子アドオンが CREATE\$1FAILED または DEGRADED ステータスをコンソールに表示する
+ アドオンに関連付けられた CloudFormation スタックが CREATE\$1FAILED 状態
+ インストールの進行状況が停止するか、エラーメッセージが表示される

**診断手順:**

1. 推論演算子のアドオンステータスを確認します。

   ```
   aws eks describe-addon \
       --cluster-name $EKS_CLUSTER_NAME \
       --addon-name amazon-sagemaker-hyperpod-inference \
       --region $REGION \
       --query "addon.{Status:status,Health:health,Issues:issues}" \
       --output json
   ```

1. ポッド制限の問題を確認します。

   ```
   # Check current pod count per node
   kubectl get nodes -o json | jq '.items[] | {name: .metadata.name, allocatable: .status.allocatable.pods, capacity: .status.capacity.pods}'
   
   # Check pods running on each node
   kubectl get pods --all-namespaces -o wide | awk '{print $8}' | sort | uniq -c
   
   # Check for pod evictions or failures
   kubectl get events --all-namespaces --sort-by='.lastTimestamp' | grep -i "pod\|limit\|quota"
   ```

1. CloudFormation スタックのステータスを確認します (コンソールのインストールを使用している場合）。

   ```
   # List CloudFormation stacks related to the cluster
   aws cloudformation list-stacks \
       --region $REGION \
       --query "StackSummaries[?contains(StackName, '$EKS_CLUSTER_NAME') && StackStatus=='CREATE_FAILED'].{Name:StackName,Status:StackStatus,Reason:StackStatusReason}" \
       --output table
   
   # Get detailed stack events
   aws cloudformation describe-stack-events \
       --stack-name <stack-name> \
       --region $REGION \
       --query "StackEvents[?ResourceStatus=='CREATE_FAILED']" \
       --output table
   ```

### 解決策
<a name="sagemaker-hyperpod-model-deployment-ts-console-cfn-resolution"></a>

インストールの失敗を解決するには、現在の設定を保存し、失敗したアドオンを削除して根本的な問題を修正し、SageMaker AI コンソール (推奨) または AWS CLI を使用して推論演算子を再インストールします。

**ステップ 1: 現在の設定を保存する**
+ 削除する前にアドオン設定を抽出して保存します。

  ```
  # Save the current configuration
  aws eks describe-addon \
      --cluster-name $EKS_CLUSTER_NAME \
      --addon-name amazon-sagemaker-hyperpod-inference \
      --region $REGION \
      --query 'addon.configurationValues' \
      --output text > addon-config-backup.json
  
  # Verify the configuration was saved
  cat addon-config-backup.json
  
  # Pretty print for readability
  cat addon-config-backup.json | jq '.'
  ```

**ステップ 2: 失敗したアドオンを削除する**
+ 推論演算子アドオンを削除します。

  ```
  aws eks delete-addon \
      --cluster-name $EKS_CLUSTER_NAME \
      --addon-name amazon-sagemaker-hyperpod-inference \
      --region $REGION
  
  # Wait for deletion to complete
  echo "Waiting for add-on deletion..."
  aws eks wait addon-deleted \
      --cluster-name $EKS_CLUSTER_NAME \
      --addon-name amazon-sagemaker-hyperpod-inference \
      --region $REGION 2>/dev/null || sleep 60
  ```

**ステップ 3: 根本的な問題を修正する**

失敗の原因に基づいて適切な解決策を選択します。

問題がポッドの制限を超えた場合:

```
# The inference operator requires a minimum of 13 pods.
# The minimum recommended instance type is ml.c5.4xlarge.
#
# Option 1: Add instance group with higher pod capacity
# Different instance types support different maximum pod counts
# For example: m5.large (29 pods), m5.xlarge (58 pods), m5.2xlarge (58 pods)
aws sagemaker update-cluster \
    --cluster-name $HYPERPOD_CLUSTER_NAME \
    --region $REGION \
    --instance-groups '[{"InstanceGroupName":"worker-group-2","InstanceType":"ml.m5.xlarge","InstanceCount":2}]'

# Option 2: Scale existing node group to add more nodes
aws eks update-nodegroup-config \
    --cluster-name $EKS_CLUSTER_NAME \
    --nodegroup-name <nodegroup-name> \
    --scaling-config minSize=2,maxSize=10,desiredSize=5 \
    --region $REGION

# Option 3: Clean up unused pods
kubectl delete pods --field-selector status.phase=Failed --all-namespaces
kubectl delete pods --field-selector status.phase=Succeeded --all-namespaces
```

**ステップ 4: 推論演算子を再インストールする**

根本的な問題を修正したら、次のいずれかの方法を使用して推論演算子を再インストールします。
+ **SageMaker AI コンソールとカスタムインストール (推奨):** 以前のインストールから既存の IAM ロールと TLS バケットを再利用します。手順については、「[方法 1: SageMaker AI コンソールを使用して HyperPod 推論アドオンをインストールする (推奨)](sagemaker-hyperpod-model-deployment-setup.md#sagemaker-hyperpod-model-deployment-setup-ui)」を参照してください。
+ **AWS 保存済み設定の CLI:** ステップ 1 でバックアップした設定を使用してアドオンを再インストールします。CLI のインストール手順の詳細については、「」を参照してください[方法 2: CLI AWS を使用した推論演算子のインストール](sagemaker-hyperpod-model-deployment-setup.md#sagemaker-hyperpod-model-deployment-setup-addon)。

  ```
  aws eks create-addon \
      --cluster-name $EKS_CLUSTER_NAME \
      --addon-name amazon-sagemaker-hyperpod-inference \
      --addon-version v1.0.0-eksbuild.1 \
      --configuration-values file://addon-config-backup.json \
      --region $REGION
  ```
+ **クイックインストールを備えた SageMaker AI コンソール:** 新しい IAM ロール、TLS バケット、依存関係アドオンを自動的に作成します。手順については、「[方法 1: SageMaker AI コンソールを使用して HyperPod 推論アドオンをインストールする (推奨)](sagemaker-hyperpod-model-deployment-setup.md#sagemaker-hyperpod-model-deployment-setup-ui)」を参照してください。

**ステップ 5: 正常にインストールされたことを確認する**

```
# Check add-on status
aws eks describe-addon \
    --cluster-name $EKS_CLUSTER_NAME \
    --addon-name amazon-sagemaker-hyperpod-inference \
    --region $REGION \
    --query "addon.{Status:status,Health:health}" \
    --output table

# Verify pods are running
kubectl get pods -n hyperpod-inference-system

# Check operator logs
kubectl logs -n hyperpod-inference-system deployment/hyperpod-inference-controller-manager --tail=50
```

## Kueue ウェブフックの準備が整っていないため、Cert-manager のインストールに失敗しました
<a name="sagemaker-hyperpod-model-deployment-ts-console-kueue-webhook-race"></a>

**問題:** Task Governance (Kueue) ウェブフックサービスに使用可能なエンドポイントがないため、cert-manager アドオンのインストールがウェブフックエラーで失敗します。これは、Task Governance ウェブフックポッドが完全に実行される前に、cert-manager がリソースを作成しようとするときに発生する競合状態です。これは、クラスターの作成中にタスクガバナンスアドオンが推論演算子とともにインストールされている場合に発生する可能性があります。

### 症状と診断
<a name="sagemaker-hyperpod-model-deployment-ts-console-kueue-symptoms"></a>

**エラーメッセージ:**

```
AdmissionRequestDenied
Internal error occurred: failed calling webhook "mdeployment.kb.io": failed to call webhook: 
Post "https://kueue-webhook-service.kueue-system.svc:443/mutate-apps-v1-deployment?timeout=10s": 
no endpoints available for service "kueue-webhook-service"
```

**根本原因:**
+ Task Governance アドオンは、すべてのデプロイ作成を傍受する変更ウェブフックをインストールして登録します
+ Cert-manager アドオンは、タスクガバナンスウェブフックポッドの準備が整う前にデプロイリソースを作成しようとします
+ Kubernetes アドミッションコントロールは Task Governance ウェブフックを呼び出しますが、エンドポイントはありません (ポッドはまだ実行されていません)

**診断ステップ:**

1. cert-manager アドオンのステータスを確認します。

   ```
   aws eks describe-addon \
       --cluster-name $EKS_CLUSTER_NAME \
       --addon-name cert-manager \
       --region $REGION \
       --query "addon.{Status:status,Health:health,Issues:issues}" \
       --output json
   ```

### 解決策
<a name="sagemaker-hyperpod-model-deployment-ts-console-kueue-resolution"></a>

**解決策: cert-manager を削除して再インストールする**

タスクガバナンスウェブフックは 60 秒以内に準備完了になります。cert-manager アドオンを削除して再インストールするだけです。

1. 失敗した cert-manager アドオンを削除します。

   ```
   aws eks delete-addon \
       --cluster-name $EKS_CLUSTER_NAME \
       --addon-name cert-manager \
       --region $REGION
   ```

1. Task Governance ウェブフックの準備ができるまで 30～60 秒待ってから、cert-manager アドオンを再インストールします。

   ```
   sleep 60
   
   aws eks create-addon \
       --cluster-name $EKS_CLUSTER_NAME \
       --addon-name cert-manager \
       --region $REGION
   ```