View a markdown version of this page

SageMaker AI コンソールを使用した推論オペレーターのインストールの失敗 - Amazon SageMaker AI

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

SageMaker AI コンソールを使用した推論オペレーターのインストールの失敗

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

クイックインストールまたはカスタムインストールによる推論演算子アドオンのインストール失敗

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

一般的な原因:

  • クラスターノードのポッド容量制限を超えました。推論演算子のインストールには、少なくとも 13 個のポッドが必要です。最小推奨インスタンスタイプは ですml.c5.4xlarge

  • IAM アクセス許可の問題

  • リソースクォータの制約

  • ネットワークまたは VPC 設定の問題

症状と診断

症状:

  • 推論演算子アドオンが CREATE_FAILED または DEGRADED ステータスをコンソールに表示する

  • アドオンに関連付けられた CloudFormation スタックが CREATE_FAILED 状態

  • インストールの進行状況が停止するか、エラーメッセージが表示される

診断手順:

  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
  2. ポッド制限の問題を確認します。

    # 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"
  3. 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

解決策

インストールの失敗を解決するには、現在の設定を保存し、失敗したアドオンを削除して根本的な問題を修正し、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: 推論演算子を再インストールする

根本的な問題を修正したら、次のいずれかの方法を使用して推論演算子を再インストールします。

ステップ 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 のインストールに失敗しました

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

症状と診断

エラーメッセージ:

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

解決策

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

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

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

    aws eks delete-addon \ --cluster-name $EKS_CLUSTER_NAME \ --addon-name cert-manager \ --region $REGION
  2. Task Governance ウェブフックの準備ができるまで 30~60 秒待ってから、cert-manager アドオンを再インストールします。

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