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à.
Errori di installazione dell'operatore di inferenza tramite CLI AWS
Panoramica: quando si installa l'operatore di inferenza tramite la AWS CLI, l'installazione del componente aggiuntivo potrebbe non riuscire a causa della mancanza di dipendenze. Questa sezione descrive i più comuni scenari di errore di installazione della CLI e le relative risoluzioni.
L'installazione del componente aggiuntivo Inference non è riuscita a causa della mancanza di driver CSI
Problema: la creazione del componente aggiuntivo dell'operatore di inferenza non riesce perché le dipendenze dei driver CSI richieste non sono installate nel cluster EKS.
Sintomi e diagnosi:
Messaggi di errore:
I seguenti errori vengono visualizzati nei registri di creazione dei componenti aggiuntivi o nei registri degli operatori di inferenza:
S3 CSI driver not installed (missing CSIDriver s3.csi.aws.com). Please install the required CSI driver and see the troubleshooting guide for more information. FSx CSI driver not installed (missing CSIDriver fsx.csi.aws.com). Please install the required CSI driver and see the troubleshooting guide for more information.
Fasi diagnostiche:
-
Controlla se i driver CSI sono installati:
# Check for S3 CSI driver kubectl get csidriver s3.csi.aws.com kubectl get pods -n kube-system | grep mountpoint # Check for FSx CSI driver kubectl get csidriver fsx.csi.aws.com kubectl get pods -n kube-system | grep fsx -
Controlla lo stato del componente aggiuntivo EKS:
# List all add-ons aws eks list-addons --cluster-name $EKS_CLUSTER_NAME --region $REGION # Check specific CSI driver add-ons aws eks describe-addon --cluster-name $EKS_CLUSTER_NAME --addon-name aws-mountpoint-s3-csi-driver --region $REGION 2>/dev/null || echo "S3 CSI driver not installed" aws eks describe-addon --cluster-name $EKS_CLUSTER_NAME --addon-name aws-fsx-csi-driver --region $REGION 2>/dev/null || echo "FSx CSI driver not installed" -
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
Risoluzione:
Passaggio 1: installa il driver S3 CSI mancante
-
Crea il ruolo IAM per il driver S3 CSI (se non è già stato creato):
# Set up service account role ARN (from installation steps) export S3_CSI_ROLE_ARN=$(aws iam get-role --role-name $S3_CSI_ROLE_NAME --query 'Role.Arn' --output text 2>/dev/null || echo "Role not found") echo "S3 CSI Role ARN: $S3_CSI_ROLE_ARN" -
Installa il componente aggiuntivo del driver S3 CSI:
aws eks create-addon \ --cluster-name $EKS_CLUSTER_NAME \ --addon-name aws-mountpoint-s3-csi-driver \ --addon-version v1.14.1-eksbuild.1 \ --service-account-role-arn $S3_CSI_ROLE_ARN \ --region $REGION -
Verifica l'installazione del driver S3 CSI:
# Wait for add-on to be active aws eks wait addon-active --cluster-name $EKS_CLUSTER_NAME --addon-name aws-mountpoint-s3-csi-driver --region $REGION # Verify CSI driver is available kubectl get csidriver s3.csi.aws.com kubectl get pods -n kube-system | grep mountpoint
Fase 2: Installare il driver CSI mancante FSx
-
Crea il ruolo IAM per il driver FSx CSI (se non è già stato creato):
# Set up service account role ARN (from installation steps) export FSX_CSI_ROLE_ARN=$(aws iam get-role --role-name $FSX_CSI_ROLE_NAME --query 'Role.Arn' --output text 2>/dev/null || echo "Role not found") echo "FSx CSI Role ARN: $FSX_CSI_ROLE_ARN" -
Installa il FSx componente aggiuntivo del driver CSI:
aws eks create-addon \ --cluster-name $EKS_CLUSTER_NAME \ --addon-name aws-fsx-csi-driver \ --addon-version v1.6.0-eksbuild.1 \ --service-account-role-arn $FSX_CSI_ROLE_ARN \ --region $REGION # Wait for add-on to be active aws eks wait addon-active --cluster-name $EKS_CLUSTER_NAME --addon-name aws-fsx-csi-driver --region $REGION # Verify FSx CSI driver is running kubectl get pods -n kube-system | grep fsx
Fase 3: Verifica tutte le dipendenze
Dopo aver installato le dipendenze mancanti, verifica che funzionino correttamente prima di riprovare l'installazione dell'operatore di inferenza:
# Check all required add-ons are active aws eks describe-addon --cluster-name $EKS_CLUSTER_NAME --addon-name aws-mountpoint-s3-csi-driver --region $REGION aws eks describe-addon --cluster-name $EKS_CLUSTER_NAME --addon-name aws-fsx-csi-driver --region $REGION aws eks describe-addon --cluster-name $EKS_CLUSTER_NAME --addon-name metrics-server --region $REGION aws eks describe-addon --cluster-name $EKS_CLUSTER_NAME --addon-name cert-manager --region $REGION # Verify all pods are running kubectl get pods -n kube-system | grep -E "(mountpoint|fsx|metrics-server)" kubectl get pods -n cert-manager
Durante la distribuzione del modello mancano le definizioni di risorse personalizzate di inferenza
Problema: le definizioni di risorse personalizzate (CRDs) mancano quando si tenta di creare distribuzioni di modelli. Questo problema si verifica quando in precedenza hai installato ed eliminato il componente aggiuntivo di inferenza senza ripulire le distribuzioni di modelli che dispongono di finalizzatori.
Sintomi e diagnosi:
Causa principale:
Se si elimina il componente aggiuntivo di inferenza senza prima rimuovere tutte le distribuzioni del modello, le risorse personalizzate con i finalizzatori rimangono nel cluster. Questi finalizzatori devono essere completati prima di poter eliminare. CRDs Il processo di eliminazione dei componenti aggiuntivi non attende il completamento dell'eliminazione del CRD, il che fa sì che il componente CRDs rimanga in uno stato terminale e impedisca nuove installazioni.
Per diagnosticare questo problema
-
Controlla se CRDs esistono.
kubectl get crd | grep inference.sagemaker.aws.amazon.com -
Verifica la presenza di risorse personalizzate bloccate.
# Check for JumpStartModel resources kubectl get jumpstartmodels -A # Check for InferenceEndpointConfig resources kubectl get inferenceendpointconfigs -A -
Ispeziona i finalizzatori sulle risorse bloccate.
# Example for a specific JumpStartModel kubectl get jumpstartmodels <model-name> -n <namespace> -o jsonpath='{.metadata.finalizers}' # Example for a specific InferenceEndpointConfig kubectl get inferenceendpointconfigs <config-name> -n <namespace> -o jsonpath='{.metadata.finalizers}'
Risoluzione:
Rimuovi manualmente i finalizzatori da tutte le implementazioni del modello che non sono state eliminate quando hai rimosso il componente aggiuntivo di inferenza. Completa i seguenti passaggi per ogni risorsa personalizzata bloccata.
Per rimuovere i finalizzatori dalle risorse JumpStartModel
-
Elenca tutte le JumpStartModel risorse in tutti i namespace.
kubectl get jumpstartmodels -A -
Per ogni JumpStartModel risorsa, rimuovi i finalizzatori applicando una patch alla risorsa per impostare metadata.finalizers su un array vuoto.
kubectl patch jumpstartmodels <model-name> -n <namespace> -p '{"metadata":{"finalizers":[]}}' --type=mergeL'esempio seguente mostra come applicare una patch a una risorsa denominata kv-l1-only.
kubectl patch jumpstartmodels kv-l1-only -n default -p '{"metadata":{"finalizers":[]}}' --type=merge -
Verificate che l'istanza del modello sia eliminata.
kubectl get jumpstartmodels -AQuando tutte le risorse vengono ripulite, dovresti vedere il seguente output.
Error from server (NotFound): Unable to list "inference.sagemaker.aws.amazon.com/v1, Resource=jumpstartmodels": the server could not find the requested resource (get jumpstartmodels.inference.sagemaker.aws.amazon.com) -
Verificate che il JumpStartModel CRD sia stato rimosso.
kubectl get crd | grep jumpstartmodels.inference.sagemaker.aws.amazon.comSe il CRD viene rimosso con successo, questo comando non restituisce alcun output.
Per rimuovere i finalizzatori dalle risorse InferenceEndpointConfig
-
Elenca tutte le InferenceEndpointConfig risorse in tutti i namespace.
kubectl get inferenceendpointconfigs -A -
Per ogni InferenceEndpointConfig risorsa, rimuovi i finalizzatori.
kubectl patch inferenceendpointconfigs <config-name> -n <namespace> -p '{"metadata":{"finalizers":[]}}' --type=mergeL'esempio seguente mostra come applicare una patch a una risorsa denominata. my-inference-config
kubectl patch inferenceendpointconfigs my-inference-config -n default -p '{"metadata":{"finalizers":[]}}' --type=merge -
Verifica che l'istanza di configurazione sia eliminata.
kubectl get inferenceendpointconfigs -AQuando tutte le risorse vengono ripulite, dovresti vedere il seguente output.
Error from server (NotFound): Unable to list "inference.sagemaker.aws.amazon.com/v1, Resource=inferenceendpointconfigs": the server could not find the requested resource (get inferenceendpointconfigs.inference.sagemaker.aws.amazon.com) -
Verificate che il InferenceEndpointConfig CRD sia stato rimosso.
kubectl get crd | grep inferenceendpointconfigs.inference.sagemaker.aws.amazon.comSe il CRD viene rimosso con successo, questo comando non restituisce alcun output.
Per reinstallare il componente aggiuntivo di inferenza
Dopo aver ripulito tutte le risorse bloccate e verificato che siano CRDs state rimosse, reinstallate il componente aggiuntivo di inferenza. Per ulteriori informazioni, consulta Installazione del componente aggiuntivo Inference Operator with EKS.
Verifica:
-
Verifica che il componente aggiuntivo di inferenza sia installato correttamente.
aws eks describe-addon \ --cluster-name $EKS_CLUSTER_NAME \ --addon-name amazon-sagemaker-hyperpod-inference \ --region $REGION \ --query "addon.{Status:status,Health:health}" \ --output tableLo Status deve essere ATTIVO e l'Health deve essere SANO.
-
Verifica che CRDs siano installati correttamente.
kubectl get crd | grep inference.sagemaker.aws.amazon.comDovresti vedere i dati relativi all'inferenza CRDs elencati nell'output.
-
Prova a creare un nuovo modello di distribuzione per confermare che il problema è stato risolto.
# Create a test deployment using your preferred method kubectl apply -f <your-model-deployment.yaml>
Prevenzione:
Per evitare questo problema, completa i seguenti passaggi prima di disinstallare il componente aggiuntivo di inferenza.
-
Eliminare tutte le distribuzioni dei modelli.
# Delete all JumpStartModel resources kubectl delete jumpstartmodels --all -A # Delete all InferenceEndpointConfig resources kubectl delete inferenceendpointconfigs --all -A # Wait for all resources to be fully deleted kubectl get jumpstartmodels -A kubectl get inferenceendpointconfigs -A -
Verifica che tutte le risorse personalizzate vengano eliminate.
-
Dopo aver confermato che tutte le risorse sono state ripulite, elimina il componente aggiuntivo di inferenza.
L'installazione del componente aggiuntivo Inference non è riuscita a causa della mancanza di cert-manager
Problema: la creazione del componente aggiuntivo per l'operatore di inferenza non riesce perché il componente aggiuntivo EKS cert-manager non è installato, pertanto mancano le Custom Resource Definitions (). CRDs
Sintomi e diagnosi:
Messaggi di errore:
I seguenti errori vengono visualizzati nei registri di creazione dei componenti aggiuntivi o nei registri degli operatori di inferenza:
Missing required CRD: certificaterequests.cert-manager.io. The cert-manager add-on is not installed. Please install cert-manager and see the troubleshooting guide for more information.
Fasi diagnostiche:
-
Controlla se cert-manager è installato:
# Check for cert-manager CRDs kubectl get crd | grep cert-manager kubectl get pods -n cert-manager # Check EKS add-on status aws eks describe-addon --cluster-name $EKS_CLUSTER_NAME --addon-name cert-manager --region $REGION 2>/dev/null || echo "Cert-manager not installed" -
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
Risoluzione:
Passaggio 1: installa il componente aggiuntivo cert-manager
-
Installa il componente aggiuntivo cert-manager EKS:
aws eks create-addon \ --cluster-name $EKS_CLUSTER_NAME \ --addon-name cert-manager \ --addon-version v1.18.2-eksbuild.2 \ --region $REGION -
Verifica l'installazione di cert-manager:
# Wait for add-on to be active aws eks wait addon-active --cluster-name $EKS_CLUSTER_NAME --addon-name cert-manager --region $REGION # Verify cert-manager pods are running kubectl get pods -n cert-manager # Verify CRDs are installed kubectl get crd | grep cert-manager | wc -l # Expected: Should show multiple cert-manager CRDs
Fase 2: Riprovare l'installazione dell'operatore di inferenza
-
Dopo aver installato cert-manager, riprova a installare l'operatore di inferenza:
# Delete the failed add-on if it exists aws eks delete-addon \ --cluster-name $EKS_CLUSTER_NAME \ --addon-name amazon-sagemaker-hyperpod-inference \ --region $REGION 2>/dev/null || echo "Add-on not found, proceeding with installation" # Wait for deletion to complete sleep 30 # Reinstall the inference operator add-on 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.json \ --region $REGION -
Monitora l'installazione:
# Check installation 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 inference operator pods are running kubectl get pods -n hyperpod-inference-system
L'installazione del componente aggiuntivo Inference non è riuscita a causa della mancanza del controller ALB
Problema: la creazione del componente aggiuntivo dell'operatore di inferenza non riesce perché il Load AWS Balancer Controller non è installato o non è configurato correttamente per il componente aggiuntivo di inferenza.
Sintomi e diagnosi:
Messaggi di errore:
I seguenti errori vengono visualizzati nei registri di creazione dei componenti aggiuntivi o nei registri degli operatori di inferenza:
ALB Controller not installed (missing aws-load-balancer-controller pods). Please install the Application Load Balancer Controller and see the troubleshooting guide for more information.
Fasi diagnostiche:
-
Controlla se ALB Controller è installato:
# Check for ALB Controller pods kubectl get pods -n kube-system | grep aws-load-balancer-controller kubectl get pods -n hyperpod-inference-system | grep aws-load-balancer-controller # Check ALB Controller service account kubectl get serviceaccount aws-load-balancer-controller -n kube-system 2>/dev/null || echo "ALB Controller service account not found" kubectl get serviceaccount aws-load-balancer-controller -n hyperpod-inference-system 2>/dev/null || echo "ALB Controller service account not found in inference namespace" -
Controlla la configurazione 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,ConfigurationValues:configurationValues}" \ --output json
Risoluzione:
Scegliete una delle seguenti opzioni in base alla vostra configurazione:
Opzione 1: consenti al componente aggiuntivo di inferenza di installare ALB Controller (consigliato)
-
Assicurati che il ruolo ALB sia creato e configurato correttamente nella configurazione del componente aggiuntivo:
# Verify ALB role exists export ALB_ROLE_ARN=$(aws iam get-role --role-name alb-role --query 'Role.Arn' --output text 2>/dev/null || echo "Role not found") echo "ALB Role ARN: $ALB_ROLE_ARN" # Update your addon-config.json to enable ALB cat > addon-config.json << EOF { "executionRoleArn": "$EXECUTION_ROLE_ARN", "tlsCertificateS3Bucket": "$BUCKET_NAME", "hyperpodClusterArn": "$HYPERPOD_CLUSTER_ARN", "alb": { "enabled": true, "serviceAccount": { "create": true, "roleArn": "$ALB_ROLE_ARN" } }, "keda": { "auth": { "aws": { "irsa": { "roleArn": "$KEDA_ROLE_ARN" } } } } } EOF
Opzione 2: utilizzare l'installazione esistente del controller ALB
-
Se hai già installato ALB Controller, configura il componente aggiuntivo per utilizzare l'installazione esistente:
# Update your addon-config.json to disable ALB installation cat > addon-config.json << EOF { "executionRoleArn": "$EXECUTION_ROLE_ARN", "tlsCertificateS3Bucket": "$BUCKET_NAME", "hyperpodClusterArn": "$HYPERPOD_CLUSTER_ARN", "alb": { "enabled": false }, "keda": { "auth": { "aws": { "irsa": { "roleArn": "$KEDA_ROLE_ARN" } } } } } EOF
Fase 3: Riprovare l'installazione dell'operatore di inferenza
-
Reinstalla il componente aggiuntivo dell'operatore di inferenza con la configurazione aggiornata:
# Delete the failed add-on if it exists aws eks delete-addon \ --cluster-name $EKS_CLUSTER_NAME \ --addon-name amazon-sagemaker-hyperpod-inference \ --region $REGION 2>/dev/null || echo "Add-on not found, proceeding with installation" # Wait for deletion to complete sleep 30 # Reinstall with updated configuration 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.json \ --region $REGION -
Verifica che il controller ALB funzioni:
# Check ALB Controller pods kubectl get pods -n hyperpod-inference-system | grep aws-load-balancer-controller kubectl get pods -n kube-system | grep aws-load-balancer-controller # Check service account annotations kubectl describe serviceaccount aws-load-balancer-controller -n hyperpod-inference-system 2>/dev/null kubectl describe serviceaccount aws-load-balancer-controller -n kube-system 2>/dev/null
L'installazione del componente aggiuntivo Inference non è riuscita a causa della mancanza dell'operatore KEDA
Problema: la creazione del componente aggiuntivo dell'operatore di inferenza non riesce perché l'operatore KEDA (Kubernetes Event Driven Autoscaler) non è installato o non è configurato correttamente per il componente aggiuntivo di inferenza.
Sintomi e diagnosi:
Messaggi di errore:
I seguenti errori vengono visualizzati nei registri di creazione dei componenti aggiuntivi o nei registri degli operatori di inferenza:
KEDA operator not installed (missing keda-operator pods). KEDA can be installed separately in any namespace or via the Inference addon.
Fasi diagnostiche:
-
Controlla se l'operatore KEDA è installato:
# Check for KEDA operator pods in common namespaces kubectl get pods -n keda-system | grep keda-operator 2>/dev/null || echo "KEDA not found in keda-system namespace" kubectl get pods -n kube-system | grep keda-operator 2>/dev/null || echo "KEDA not found in kube-system namespace" kubectl get pods -n hyperpod-inference-system | grep keda-operator 2>/dev/null || echo "KEDA not found in inference namespace" # Check for KEDA CRDs kubectl get crd | grep keda 2>/dev/null || echo "KEDA CRDs not found" # Check KEDA service account kubectl get serviceaccount keda-operator -A 2>/dev/null || echo "KEDA service account not found" -
Controlla la configurazione 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,ConfigurationValues:configurationValues}" \ --output json
Risoluzione:
Scegliete una delle seguenti opzioni in base alla vostra configurazione:
Opzione 1: consenti al componente aggiuntivo di inferenza di installare KEDA (consigliato)
-
Assicurati che il ruolo KEDA sia creato e configurato correttamente nella configurazione del componente aggiuntivo:
# Verify KEDA role exists export KEDA_ROLE_ARN=$(aws iam get-role --role-name keda-operator-role --query 'Role.Arn' --output text 2>/dev/null || echo "Role not found") echo "KEDA Role ARN: $KEDA_ROLE_ARN" # Update your addon-config.json to enable KEDA cat > addon-config.json << EOF { "executionRoleArn": "$EXECUTION_ROLE_ARN", "tlsCertificateS3Bucket": "$BUCKET_NAME", "hyperpodClusterArn": "$HYPERPOD_CLUSTER_ARN", "alb": { "serviceAccount": { "create": true, "roleArn": "$ALB_ROLE_ARN" } }, "keda": { "enabled": true, "auth": { "aws": { "irsa": { "roleArn": "$KEDA_ROLE_ARN" } } } } } EOF
Opzione 2: utilizza l'installazione KEDA esistente
-
Se hai già installato KEDA, configura il componente aggiuntivo per utilizzare l'installazione esistente:
# Update your addon-config.json to disable KEDA installation cat > addon-config.json << EOF { "executionRoleArn": "$EXECUTION_ROLE_ARN", "tlsCertificateS3Bucket": "$BUCKET_NAME", "hyperpodClusterArn": "$HYPERPOD_CLUSTER_ARN", "alb": { "serviceAccount": { "create": true, "roleArn": "$ALB_ROLE_ARN" } }, "keda": { "enabled": false } } EOF
Fase 3: Riprovare l'installazione dell'operatore di inferenza
-
Reinstalla il componente aggiuntivo dell'operatore di inferenza con la configurazione aggiornata:
# Delete the failed add-on if it exists aws eks delete-addon \ --cluster-name $EKS_CLUSTER_NAME \ --addon-name amazon-sagemaker-hyperpod-inference \ --region $REGION 2>/dev/null || echo "Add-on not found, proceeding with installation" # Wait for deletion to complete sleep 30 # Reinstall with updated configuration 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.json \ --region $REGION -
Verifica che KEDA funzioni:
# Check KEDA pods kubectl get pods -n hyperpod-inference-system | grep keda kubectl get pods -n kube-system | grep keda kubectl get pods -n keda-system | grep keda 2>/dev/null # Check KEDA CRDs kubectl get crd | grep scaledobjects kubectl get crd | grep scaledjobs # Check KEDA service account annotations kubectl describe serviceaccount keda-operator -n hyperpod-inference-system 2>/dev/null kubectl describe serviceaccount keda-operator -n kube-system 2>/dev/null kubectl describe serviceaccount keda-operator -n keda-system 2>/dev/null