View a markdown version of this page

Inferenza gli errori di installazione dell'operatore tramite la console AI SageMaker - Amazon SageMaker AI

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Inferenza gli errori di installazione dell'operatore tramite la console AI SageMaker

Panoramica: quando si installa l'operatore di inferenza tramite la console SageMaker AI utilizzando Quick Install o Custom Install, gli CloudFormation stack sottostanti potrebbero non funzionare a causa di vari problemi. Questa sezione descrive gli scenari di errore più comuni e le relative risoluzioni.

Errore di installazione del componente aggiuntivo Inference Operator tramite installazione rapida o personalizzata

Problema: la creazione del HyperPod cluster viene completata correttamente, ma l'installazione del componente aggiuntivo dell'operatore di inferenza non riesce.

Cause comuni:

  • I limiti di capacità dei pod sono stati superati nei nodi del cluster. L'installazione dell'operatore di inferenza richiede un minimo di 13 pod. Il tipo di istanza minimo consigliato è. ml.c5.4xlarge

  • Problemi di autorizzazione IAM

  • Vincoli relativi alle quote di risorse

  • Problemi di configurazione della rete o del VPC

Sintomi e diagnosi

Caratteristiche:

  • Il componente aggiuntivo dell'operatore di inferenza mostra lo stato CREATE_FAILED o DEGRADED nella console

  • CloudFormation lo stack associato al componente aggiuntivo è nello stato CREATE_FAILED

  • L'avanzamento dell'installazione si interrompe o mostra messaggi di errore

Fasi di diagnostica:

  1. Controlla lo stato del componente aggiuntivo dell'operatore di inferenza:

    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. Verifica la presenza di problemi relativi al limite dei pod:

    # 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. Controlla lo stato dello CloudFormation stack (se usi l'installazione della console):

    # 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

Risoluzione

Per risolvere l'errore di installazione, salva la configurazione corrente, elimina il componente aggiuntivo non riuscito, correggi il problema sottostante e quindi reinstalla l'operatore di inferenza tramite la console SageMaker AI (consigliato) o la CLI. AWS

Passaggio 1: salvare la configurazione corrente

  • Estrai e salva la configurazione del componente aggiuntivo prima dell'eliminazione:

    # 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 '.'

Passaggio 2: Eliminare il componente aggiuntivo non riuscito

  • Elimina il componente aggiuntivo dell'operatore di inferenza:

    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

Passaggio 3: Risolvi il problema sottostante

Scegli la risoluzione appropriata in base alla causa dell'errore:

Se il problema è il superamento del limite del pod:

# 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

Fase 4: Reinstallare l'operatore di inferenza

Dopo aver risolto il problema sottostante, reinstalla l'operatore di inferenza utilizzando uno dei seguenti metodi:

Fase 5: Verificare la corretta installazione

# 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

L'installazione di Cert-Manager non è riuscita perché il webhook Kueue non è pronto

Problema: l'installazione del componente aggiuntivo cert-manager fallisce con un errore webhook perché il servizio webhook Task Governance (Kueue) non ha endpoint disponibili. Questa è una condizione di gara che si verifica quando cert-manager tenta di creare risorse prima che i pod webhook di Task Governance siano completamente funzionanti. Ciò può accadere quando il componente aggiuntivo Task Governance viene installato insieme all'operatore Inference durante la creazione del cluster.

Sintomi e diagnosi

Messaggio di errore:

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"

Causa principale:

  • Il componente aggiuntivo Task Governance installa e registra un webhook mutante che intercetta tutte le creazioni di Deployment

  • Il componente aggiuntivo Cert-Manager tenta di creare risorse di distribuzione prima che i pod webhook di Task Governance siano pronti

  • Il controllo di ammissione di Kubernetes richiama il webhook Task Governance, ma non ha endpoint (i pod non sono ancora in esecuzione)

Fase diagnostica:

  1. Controlla lo stato del componente aggiuntivo 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

Risoluzione

Soluzione: elimina e reinstalla cert-manager

Il webhook Task Governance diventa pronto entro 60 secondi. Basta eliminare e reinstallare il componente aggiuntivo cert-manager:

  1. Elimina il componente aggiuntivo cert-manager non riuscito:

    aws eks delete-addon \ --cluster-name $EKS_CLUSTER_NAME \ --addon-name cert-manager \ --region $REGION
  2. Attendi 30-60 secondi che il webhook Task Governance sia pronto, quindi reinstalla il componente aggiuntivo cert-manager:

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