

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
<a name="sagemaker-hyperpod-model-deployment-ts-console-cfn-failures"></a>

**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
<a name="sagemaker-hyperpod-model-deployment-ts-console-cfn-stack-failed"></a>

**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
<a name="sagemaker-hyperpod-model-deployment-ts-console-cfn-symptoms"></a>

**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
   ```

1. 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"
   ```

1. 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
<a name="sagemaker-hyperpod-model-deployment-ts-console-cfn-resolution"></a>

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 

**Fase 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:
+ **SageMaker Console AI con installazione personalizzata (consigliata):** riutilizza i ruoli IAM e il bucket TLS esistenti dall'installazione precedente. Per le fasi, consulta [Metodo 1: installa il componente aggiuntivo HyperPod Inference tramite la console SageMaker AI (consigliato)](sagemaker-hyperpod-model-deployment-setup.md#sagemaker-hyperpod-model-deployment-setup-ui).
+ **AWS CLI con configurazione salvata: utilizza la configurazione** di cui hai eseguito il backup nel passaggio 1 per reinstallare il componente aggiuntivo. Per la procedura completa di installazione della CLI, consulta. [Metodo 2: installazione dell'operatore di inferenza utilizzando la 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 Console AI con installazione rapida:** crea automaticamente nuovi ruoli IAM, bucket TLS e componenti aggiuntivi di dipendenza. Per le fasi, consulta [Metodo 1: installa il componente aggiuntivo HyperPod Inference tramite la console SageMaker AI (consigliato)](sagemaker-hyperpod-model-deployment-setup.md#sagemaker-hyperpod-model-deployment-setup-ui).

**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
<a name="sagemaker-hyperpod-model-deployment-ts-console-kueue-webhook-race"></a>

**Problema:** l'installazione del componente aggiuntivo cert-manager non riesce 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
<a name="sagemaker-hyperpod-model-deployment-ts-console-kueue-symptoms"></a>

**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
<a name="sagemaker-hyperpod-model-deployment-ts-console-kueue-resolution"></a>

**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
   ```

1. 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
   ```