

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# HyperPod solución de problemas de inferencias
<a name="sagemaker-hyperpod-model-deployment-ts"></a>

Esta guía de solución de problemas aborda los problemas más comunes que pueden producirse durante la implementación y el funcionamiento de Amazon SageMaker HyperPod Inference. Estos problemas suelen estar relacionados con la configuración de las redes de VPC, los permisos de IAM, la administración de recursos de Kubernetes y los problemas de conectividad del operador que pueden impedir la implementación exitosa del modelo o provocar que las implementaciones fallen o permanezcan en estados pendientes.

Esta guía de solución de problemas utiliza la siguiente terminología: los **pasos de solución de problemas** son procedimientos de diagnóstico para identificar e investigar los problemas, la **resolución** proporciona las acciones específicas para solucionar los problemas identificados y la **verificación** confirma que la solución ha funcionado correctamente.

**Topics**
+ [Deduzca los errores de instalación del operador mediante una consola de SageMaker IA](sagemaker-hyperpod-model-deployment-ts-console-cfn-failures.md)
+ [Inferencia de errores de instalación del operador mediante CLI AWS](sagemaker-hyperpod-model-deployment-ts-cli.md)
+ [Tiempo de espera para descargar el certificado](sagemaker-hyperpod-model-deployment-ts-certificate.md)
+ [Problemas de implementación del modelo](sagemaker-hyperpod-model-deployment-ts-deployment-issues.md)
+ [Emisión de permisos VPC ENI](sagemaker-hyperpod-model-deployment-ts-permissions.md)
+ [Problema con la relación de confianza de IAM](sagemaker-hyperpod-model-deployment-ts-trust.md)
+ [Falta un error en el complemento de la GPU NVIDIA](sagemaker-hyperpod-model-deployment-ts-gpu.md)
+ [El operador de inferencia no se puede iniciar](sagemaker-hyperpod-model-deployment-ts-startup.md)

# Deduzca los errores de instalación del operador mediante una consola de SageMaker IA
<a name="sagemaker-hyperpod-model-deployment-ts-console-cfn-failures"></a>

**Descripción general:** Al instalar el operador de inferencia a través de la consola de SageMaker IA mediante una instalación rápida o una instalación personalizada, es posible que las CloudFormation pilas subyacentes fallen debido a varios problemas. En esta sección se describen los escenarios de error más comunes y sus soluciones.

## Deduzca el error en la instalación del complemento por parte del operador mediante una instalación rápida o personalizada
<a name="sagemaker-hyperpod-model-deployment-ts-console-cfn-stack-failed"></a>

**Problema:** la creación del HyperPod clúster se completa correctamente, pero se produce un error al instalar el complemento del operador de inferencia.

**Causas habituales:**
+ Se han superado los límites de capacidad del pod en los nodos del clúster. La instalación del operador de inferencia requiere un mínimo de 13 pods. El tipo de instancia mínimo recomendado es`ml.c5.4xlarge`.
+ Problemas con los permisos de IAM
+ Restricciones de cuota de recursos
+ Problemas de configuración de red o VPC

### Síntomas y diagnóstico
<a name="sagemaker-hyperpod-model-deployment-ts-console-cfn-symptoms"></a>

**Síntomas:**
+ El complemento Inference Operator muestra el estado CREATE\$1FAILED o DEGRADED en la consola
+ CloudFormation la pila asociada al complemento tiene el estado CREATE\$1FAILED
+ El progreso de la instalación se detiene o muestra mensajes de error

**Pasos de diagnóstico:**

1. Compruebe el estado del complemento del operador de inferencia:

   ```
   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. Compruebe si hay problemas con el límite de los pods:

   ```
   # 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. Comprueba el estado de la CloudFormation pila (si utilizas la instalación de la consola):

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

### Resolución
<a name="sagemaker-hyperpod-model-deployment-ts-console-cfn-resolution"></a>

Para resolver el error de instalación, guarde la configuración actual, elimine el complemento fallido, corrija el problema subyacente y, a continuación, vuelva a instalar el operador de inferencia a través de la consola de SageMaker IA (se recomienda) o la AWS CLI.

**Paso 1: Guarde la configuración actual**
+ Extraiga y guarde la configuración del complemento antes de eliminarla:

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

**Paso 2: Eliminar el complemento fallido**
+ Elimine el complemento del operador de inferencia:

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

**Paso 3: Solucione el problema subyacente**

Elija la solución adecuada en función de la causa del error:

Si se ha superado el límite de cápsulas del problema:

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

**Paso 4: Vuelva a instalar el operador de inferencia**

Tras solucionar el problema subyacente, vuelva a instalar el operador de inferencia mediante uno de los métodos siguientes:
+ **SageMaker Consola de IA con instalación personalizada (recomendada):** reutilice las funciones de IAM y el depósito de TLS existentes de la instalación anterior. Para ver los pasos, consulte [Método 1: instalar el complemento HyperPod Inference a través de una consola de SageMaker IA (recomendado)](sagemaker-hyperpod-model-deployment-setup.md#sagemaker-hyperpod-model-deployment-setup-ui).
+ **AWS CLI con configuración guardada:** utilice la configuración de la que hizo una copia de seguridad en el paso 1 para volver a instalar el complemento. Para ver todos los pasos de instalación de la CLI, consulte[Método 2: Instalación del operador de inferencia mediante 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 Consola de IA con instalación rápida:** crea automáticamente nuevas funciones de IAM, un depósito de TLS y complementos de dependencia. Para ver los pasos, consulte [Método 1: instalar el complemento HyperPod Inference a través de una consola de SageMaker IA (recomendado)](sagemaker-hyperpod-model-deployment-setup.md#sagemaker-hyperpod-model-deployment-setup-ui).

**Paso 5: Compruebe que la instalación se ha realizado correctamente**

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

## La instalación de Cert-Manager falló debido a que el webhook de Kueue no estaba listo
<a name="sagemaker-hyperpod-model-deployment-ts-console-kueue-webhook-race"></a>

**Problema:** la instalación del complemento cert-manager falla y se produce un error de webhook porque el servicio de webhook de Task Governance (Kueue) no tiene puntos de enlace disponibles. Se trata de una condición de carrera que se produce cuando cert-manager intenta crear recursos antes de que los módulos de webhook de Task Governance estén en pleno funcionamiento. Esto puede ocurrir cuando se instala el complemento Task Governance junto con el operador de inferencia durante la creación del clúster.

### Síntomas y diagnóstico
<a name="sagemaker-hyperpod-model-deployment-ts-console-kueue-symptoms"></a>

**Mensaje de error:**

```
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 raíz:**
+ El complemento Task Governance instala y registra un webhook mutante que intercepta todas las creaciones de Deployment
+ El complemento Cert-Manager intenta crear recursos de despliegue antes de que los webhooks de Task Governance estén listos
+ El control de admisión de Kubernetes llama webhook a Task Governance, pero no tiene puntos de conexión (los pods aún no se están ejecutando)

**Paso de diagnóstico:**

1. Compruebe el estado del complemento 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
   ```

### Resolución
<a name="sagemaker-hyperpod-model-deployment-ts-console-kueue-resolution"></a>

**Solución: elimine y vuelva a instalar cert-manager**

El webhook de Task Governance estará listo en 60 segundos. Simplemente elimina y vuelve a instalar el complemento cert-manager:

1. Elimine el complemento cert-manager fallido:

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

1. Espere entre 30 y 60 segundos hasta que el webhook de Task Governance esté listo y, a continuación, vuelva a instalar el complemento cert-manager:

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

# Inferencia de errores de instalación del operador mediante CLI AWS
<a name="sagemaker-hyperpod-model-deployment-ts-cli"></a>

**Descripción general:** Al instalar el operador de inferencia a través de la AWS CLI, la instalación del complemento puede fallar debido a la falta de dependencias. En esta sección se describen los escenarios de error más comunes en la instalación de la CLI y sus soluciones.

## La instalación del complemento de inferencia falló debido a la falta de controladores CSI
<a name="sagemaker-hyperpod-model-deployment-ts-missing-csi-drivers"></a>

**Problema:** Se produce un error al crear el complemento del operador de inferencia porque las dependencias del controlador CSI necesarias no están instaladas en el clúster EKS.

**Síntomas y diagnóstico:**

**Mensajes de error:**

Los siguientes errores aparecen en los registros de creación de complementos o en los registros de operadores de inferencia:

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

**Pasos de diagnóstico:**

1. Compruebe si los controladores CSI están instalados:

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

1. Compruebe el estado del complemento 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"
   ```

1. Compruebe el estado del complemento del operador de inferencia:

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

**Solución**:

**Paso 1: Instale el controlador CSI de S3 que falta**

1. Cree el rol de IAM para el controlador CSI de S3 (si aún no lo ha creado):

   ```
   # 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"
   ```

1. Instale el complemento del controlador CSI de S3:

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

1. Verifique la instalación del controlador CSI de S3:

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

**Paso 2: Instale el controlador FSx CSI que falta**

1. Cree el rol de IAM para el controlador FSx CSI (si aún no lo ha creado):

   ```
   # 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"
   ```

1. Instale el complemento FSx del controlador 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
   ```

**Paso 3: Verificar todas las dependencias**

Tras instalar las dependencias que faltan, compruebe que se estén ejecutando correctamente antes de volver a intentar instalar el operador de inferencia:

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

## Faltan las definiciones de recursos personalizados de inferencia durante la implementación del modelo
<a name="sagemaker-hyperpod-model-deployment-ts-crd-not-exist"></a>

**Problema:** Faltan las definiciones de recursos personalizadas (CRDs) al intentar crear implementaciones de modelos. Este problema se produce al instalar y eliminar previamente el complemento de inferencia sin limpiar las implementaciones de modelos que tienen finalizadores.

**Síntomas y diagnóstico:**

**Causa raíz:**

Si elimina el complemento de inferencia sin eliminar primero todas las implementaciones del modelo, los recursos personalizados con finalizadores permanecen en el clúster. Estos finalizadores deben completarse antes de que pueda eliminar el. CRDs El proceso de eliminación del complemento no espera a que se complete la eliminación del CRD, lo que hace que el CRDs complemento permanezca en un estado de finalización e impide nuevas instalaciones.

**Para diagnosticar este problema**

1. Compruebe si CRDs existen.

   ```
   kubectl get crd | grep inference.sagemaker.aws.amazon.com
   ```

1. Comprueba si hay recursos personalizados atascados.

   ```
   # Check for JumpStartModel resources
   kubectl get jumpstartmodels -A
   
   # Check for InferenceEndpointConfig resources
   kubectl get inferenceendpointconfigs -A
   ```

1. Inspeccione los finalizadores para ver si los recursos están atascados.

   ```
   # 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}'
   ```

**Solución**:

Elimine manualmente los finalizadores de todas las implementaciones de modelos que no se eliminaron al eliminar el complemento de inferencia. Complete los siguientes pasos para cada recurso personalizado bloqueado.

**Para eliminar los finalizadores de los recursos JumpStartModel **

1. Enumera todos los JumpStartModel recursos en todos los espacios de nombres.

   ```
   kubectl get jumpstartmodels -A
   ```

1. Para cada JumpStartModel recurso, elimina los finalizadores parcheando el recurso para establecer metadata.finalizers en una matriz vacía.

   ```
   kubectl patch jumpstartmodels <model-name> -n <namespace> -p '{"metadata":{"finalizers":[]}}' --type=merge
   ```

   En el siguiente ejemplo, se muestra cómo aplicar un parche a un recurso denominado kv-l1-only.

   ```
   kubectl patch jumpstartmodels kv-l1-only -n default -p '{"metadata":{"finalizers":[]}}' --type=merge
   ```

1. Compruebe que se haya eliminado la instancia del modelo.

   ```
   kubectl get jumpstartmodels -A
   ```

   Cuando se hayan limpiado todos los recursos, debería ver el siguiente resultado.

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

1. Compruebe que se ha quitado el JumpStartModel CRD.

   ```
   kubectl get crd | grep jumpstartmodels.inference.sagemaker.aws.amazon.com
   ```

   Si el CRD se ha eliminado correctamente, este comando no devuelve ningún resultado.

**Para eliminar los finalizadores de los recursos InferenceEndpointConfig **

1. Enumera todos los InferenceEndpointConfig recursos en todos los espacios de nombres.

   ```
   kubectl get inferenceendpointconfigs -A
   ```

1. Para cada InferenceEndpointConfig recurso, elimina los finalizadores.

   ```
   kubectl patch inferenceendpointconfigs <config-name> -n <namespace> -p '{"metadata":{"finalizers":[]}}' --type=merge
   ```

   El siguiente ejemplo muestra cómo aplicar un parche a un recurso denominado. my-inference-config

   ```
   kubectl patch inferenceendpointconfigs my-inference-config -n default -p '{"metadata":{"finalizers":[]}}' --type=merge
   ```

1. Compruebe que se haya eliminado la instancia de configuración.

   ```
   kubectl get inferenceendpointconfigs -A
   ```

   Cuando se hayan limpiado todos los recursos, deberías ver el siguiente resultado.

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

1. Compruebe que se ha quitado el InferenceEndpointConfig CRD.

   ```
   kubectl get crd | grep inferenceendpointconfigs.inference.sagemaker.aws.amazon.com
   ```

   Si el CRD se ha eliminado correctamente, este comando no devuelve ningún resultado.

**Para volver a instalar el complemento de inferencia**

Tras limpiar todos los recursos atascados y comprobar que CRDs se han eliminado, vuelva a instalar el complemento de inferencia. Para obtener más información, consulte [Instalación del operador de inferencia con el complemento EKS](sagemaker-hyperpod-model-deployment-setup.md#sagemaker-hyperpod-model-deployment-setup-install-inference-operator-addon).

**Verificación:**

1. Compruebe que el complemento de inferencia se haya instalado correctamente.

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

   El Estado debe ser ACTIVO y la Salud debe estar SANA.

1. Compruebe que CRDs estén correctamente instalados.

   ```
   kubectl get crd | grep inference.sagemaker.aws.amazon.com
   ```

   Debería ver lo relacionado con las inferencias en la CRDs lista de resultados.

1. Pruebe a crear un nuevo modelo de implementación para confirmar que el problema está resuelto.

   ```
   # Create a test deployment using your preferred method
   kubectl apply -f <your-model-deployment.yaml>
   ```

**Prevención**:

Para evitar este problema, complete los siguientes pasos antes de desinstalar el complemento de inferencia.

1. Elimine todas las implementaciones de modelos.

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

1. Compruebe que se hayan eliminado todos los recursos personalizados.

1. Tras confirmar que se han limpiado todos los recursos, elimine el complemento de inferencia.

## No se pudo instalar el complemento de inferencia porque faltaba un administrador de certificados
<a name="sagemaker-hyperpod-model-deployment-ts-missing-cert-manager"></a>

**Problema:** La creación del complemento del operador de inferencia falla porque el complemento EKS del administrador de certificados no está instalado, por lo que faltan las definiciones de recursos personalizadas (). CRDs

**Síntomas y diagnóstico:**

**Mensajes de error:**

Los siguientes errores aparecen en los registros de creación de complementos o en los registros de operadores de inferencia:

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

**Pasos de diagnóstico:**

1. Compruebe si el administrador de certificados está instalado:

   ```
   # 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"
   ```

1. Compruebe el estado del complemento del operador de inferencia:

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

**Solución**:

**Paso 1: Instalar el complemento cert-manager**

1. Instale el complemento EKS de cert-manager:

   ```
   aws eks create-addon \
       --cluster-name $EKS_CLUSTER_NAME \
       --addon-name cert-manager \
       --addon-version v1.18.2-eksbuild.2 \
       --region $REGION
   ```

1. Compruebe la instalación de 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
   ```

**Paso 2: Vuelva a intentar instalar el operador de inferencia**

1. Una vez instalado el administrador de certificados, vuelva a intentar instalar el operador de inferencia:

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

1. Supervise la instalación:

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

## La instalación del complemento de inferencia falló debido a la falta del controlador ALB
<a name="sagemaker-hyperpod-model-deployment-ts-missing-alb"></a>

**Problema:** La creación del complemento del operador de inferencia falla porque el controlador de AWS Load Balancer no está instalado o no está configurado correctamente para el complemento de inferencia.

**Síntomas y diagnóstico:**

**Mensajes de error:**

Los siguientes errores aparecen en los registros de creación de complementos o en los registros de operadores de inferencia:

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

**Pasos de diagnóstico:**

1. Compruebe si el controlador ALB está instalado:

   ```
   # 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"
   ```

1. Compruebe la configuración del complemento del operador de inferencia:

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

**Solución**:

Elija una de las siguientes opciones en función de su configuración:

**Opción 1: dejar que el complemento de inferencia instale el controlador ALB (recomendado)**
+ Asegúrese de que la función ALB se haya creado y configurado correctamente en la configuración del complemento:

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

**Opción 2: utilice la instalación existente del controlador ALB**
+ Si ya tiene instalado el controlador ALB, configure el complemento para usar la instalación existente:

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

**Paso 3: Vuelva a intentar instalar el operador de inferencia**

1. Vuelva a instalar el complemento del operador de inferencia con la configuración actualizada:

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

1. Compruebe que el controlador ALB esté funcionando:

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

## La instalación del complemento de inferencia falló debido a la falta del operador KEDA
<a name="sagemaker-hyperpod-model-deployment-ts-missing-keda"></a>

**Problema:** La creación del complemento del operador de inferencia falla porque el operador KEDA (escalador automático basado en eventos de Kubernetes) no está instalado o no está configurado correctamente para el complemento de inferencia.

**Síntomas y diagnóstico:**

**Mensajes de error:**

Los siguientes errores aparecen en los registros de creación de complementos o en los registros de operadores de inferencia:

```
KEDA operator not installed (missing keda-operator pods). 
KEDA can be installed separately in any namespace or via the Inference addon.
```

**Pasos de diagnóstico:**

1. Compruebe si el operador KEDA está instalado:

   ```
   # 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"
   ```

1. Compruebe la configuración del complemento del operador de inferencia:

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

**Solución**:

Elija una de las siguientes opciones en función de su configuración:

**Opción 1: dejar que el complemento de inferencia instale KEDA (recomendado)**
+ Asegúrese de que el rol KEDA esté creado y configurado correctamente en la configuración del complemento:

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

**Opción 2: utilice una instalación de KEDA existente**
+ Si ya tiene KEDA instalado, configure el complemento para que utilice la instalación existente:

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

**Paso 3: Vuelva a intentar instalar el operador de inferencia**

1. Vuelva a instalar el complemento del operador de inferencia con la configuración actualizada:

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

1. Compruebe que KEDA esté funcionando:

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

# Tiempo de espera para descargar el certificado
<a name="sagemaker-hyperpod-model-deployment-ts-certificate"></a>

Al implementar un punto final de SageMaker IA, el proceso de creación falla debido a la imposibilidad de descargar el certificado de la autoridad de certificación (CA) en un entorno de VPC. Para ver los pasos de configuración detallados, consulta la [guía de administración](https://github.com/aws-samples/sagemaker-genai-hosting-examples/blob/main/SageMakerHyperpod/hyperpod-inference/Hyperpod_Inference_Admin_Notebook.ipynb).

**Mensaje de error:**

En los CloudWatch registros de puntos finales de la SageMaker IA aparece el siguiente error: 

```
Error downloading CA certificate: Connect timeout on endpoint URL: "https://****.s3.<REGION>.amazonaws.com/****/***.pem"
```

**Causa principal:**
+ Este problema se produce cuando el operador de inferencia no puede acceder al certificado autofirmado de Amazon S3 dentro de su VPC.
+ La configuración adecuada del punto de conexión de VPC de Amazon S3 es esencial para el acceso a los certificados

**Solución**:

1. Si no tiene un punto de conexión de VPC de Amazon S3:
   + Cree un punto de enlace de VPC de Amazon S3 siguiendo la configuración de la sección 5.3 de la guía de [administración](https://github.com/aws-samples/sagemaker-genai-hosting-examples/blob/main/SageMakerHyperpod/hyperpod-inference/Hyperpod_Inference_Admin_Notebook.ipynb).

1. Si ya tiene un punto de conexión de VPC de Amazon S3:
   + Asegúrese de que la tabla de enrutamiento de subred esté configurada para apuntar al punto final de la VPC (si se usa el punto de enlace) o de que el DNS privado esté habilitado para el punto final de la interfaz.
   + El punto de enlace de VPC de Amazon S3 debe ser similar a la configuración mencionada en la sección 5.3 (paso de creación del punto de conexión)

# Problemas de implementación del modelo
<a name="sagemaker-hyperpod-model-deployment-ts-deployment-issues"></a>

**Descripción general:** en esta sección se describen los problemas más comunes que se producen durante la implementación del modelo, incluidos los estados pendientes, las implementaciones fallidas y la supervisión del progreso de la implementación.

## El despliegue del modelo está atascado en estado pendiente
<a name="sagemaker-hyperpod-model-deployment-ts-pending"></a>

Al implementar un modelo, la implementación permanece en estado «pendiente» durante un período prolongado. Esto indica que el operador de inferencia no puede iniciar la implementación del modelo en el HyperPod clúster.

**Componentes afectados:**

Durante el despliegue normal, el operador de inferencia debe:
+ Implementar un pod de modelos
+ Creación de un balanceador de carga
+ Cree un punto final de SageMaker IA

**Pasos para la solución de problemas:**

1. Compruebe el estado del módulo del operador de inferencia:

   ```
   kubectl get pods -n hyperpod-inference-system
   ```

   Ejemplo de resultado esperado:

   ```
   NAME                                                           READY   STATUS    RESTARTS   AGE
   hyperpod-inference-operator-controller-manager-65c49967f5-894fg   1/1     Running   0         6d13h
   ```

1. Revise los registros de operadores de inferencia y examine los registros de operadores para ver si hay mensajes de error:

   ```
   kubectl logs hyperpod-inference-operator-controller-manager-5b5cdd7757-txq8f -n hyperpod-inference-operator-system
   ```

**Qué buscar:**
+ Mensajes de error en los registros del operador
+ Estado del módulo del operador
+ Cualquier advertencia o fallo relacionado con la implementación

**nota**  
Una implementación en buen estado debería superar el estado «Pendiente» en un tiempo razonable. Si los problemas persisten, revise los registros del operador de inferencia para ver si hay mensajes de error específicos para determinar la causa raíz.

## Solución de problemas de estado de implementación del modelo
<a name="sagemaker-hyperpod-model-deployment-ts-failed"></a>

Cuando la implementación de un modelo entra en un estado «fallido», el error puede producirse en uno de los tres componentes:
+ Despliegue del módulo modelo
+ Creación de un balanceador de carga
+ SageMaker Creación de terminales de IA

**Pasos para la solución de problemas:**

1. Compruebe el estado del operador de inferencia:

   ```
   kubectl get pods -n hyperpod-inference-system
   ```

   Resultado previsto:

   ```
   NAME                                                           READY   STATUS    RESTARTS   AGE
   hyperpod-inference-operator-controller-manager-65c49967f5-894fg   1/1     Running   0         6d13h
   ```

1. Revise los registros del operador:

   ```
   kubectl logs hyperpod-inference-operator-controller-manager-5b5cdd7757-txq8f -n hyperpod-inference-operator-system
   ```

**Qué buscar:**

Los registros del operador indicarán qué componente falló:
+ Fallos en el despliegue del módulo modelo
+ Problemas de creación del balanceador de carga
+ SageMaker Errores de punto final de IA

## Comprobar el progreso de la implementación del modelo
<a name="sagemaker-hyperpod-model-deployment-ts-progress"></a>

Para supervisar el progreso de la implementación de su modelo e identificar posibles problemas, puede usar los comandos kubectl para comprobar el estado de varios componentes. Esto ayuda a determinar si la implementación avanza con normalidad o si ha tenido problemas durante las fases de creación del módulo del modelo, configuración del equilibrador de carga o SageMaker configuración de los terminales de IA.

**Método 1: compruebe el estado del modelo JumpStart **

```
kubectl describe jumpstartmodel.inference.sagemaker.aws.amazon.com/<model-name> -n <namespace>
```

**Indicadores de estado clave que deben supervisarse:**

1. Estado de la implementación
   + Busque`Status.State`: Debería mostrarse `DeploymentComplete`
   + Compruebe `Status.Deployment Status.Available Replicas`
   + Supervise `Status.Conditions` el progreso de la implementación

1. SageMaker Estado del terminal de IA
   + Comprobar`Status.Endpoints.Sagemaker.State`: debería mostrarse `CreationCompleted`
   + Verificar `Status.Endpoints.Sagemaker.Endpoint Arn`

1. Estado del certificado TLS
   + Ver detalles `Status.Tls Certificate`
   + Compruebe la caducidad del certificado en `Last Cert Expiry Time`

**Método 2: compruebe la configuración del punto final de inferencia**

```
kubectl describe inferenceendpointconfig.inference.sagemaker.aws.amazon.com/<deployment_name> -n <namespace>
```

**Estados de estado comunes:**
+ `DeploymentInProgress`: Fase de despliegue inicial
+ `DeploymentComplete`: Despliegue exitoso
+ `Failed`: Falló el despliegue

**nota**  
Supervise la sección de eventos para detectar cualquier advertencia o error. Compruebe que el recuento de réplicas coincida con la configuración esperada. Compruebe que se cumplen todas las condiciones `Status: True` para una implementación en buen estado.

# Emisión de permisos VPC ENI
<a name="sagemaker-hyperpod-model-deployment-ts-permissions"></a>

SageMaker Se produce un error en la creación de puntos finales de IA debido a la falta de permisos para crear interfaces de red en la VPC.

**Mensaje de error:**

```
Please ensure that the execution role for variant AllTraffic has sufficient permissions for creating an endpoint variant within a VPC
```

**Causa raíz:**

La función de ejecución del operador de inferencia carece del permiso de Amazon EC2 necesario para crear interfaces de red (ENI) en la VPC.

**Solución**:

Añada el siguiente permiso de IAM a la función de ejecución del operador de inferencia:

```
{
    "Effect": "Allow",
    "Action": [
        "ec2:CreateNetworkInterfacePermission",
        "ec2:DeleteNetworkInterfacePermission"
     ],
    "Resource": "*"
}
```

**Verificación:**

Tras añadir el permiso:

1. Elimine el punto final fallido (si existe)

1. Vuelva a intentar la creación del punto final

1. Supervise el estado de la implementación para que se complete correctamente

**nota**  
Este permiso es esencial para los puntos finales de SageMaker IA que se ejecutan en modo VPC. Asegúrese de que la función de ejecución también tenga todos los demás permisos necesarios relacionados con la VPC.

# Problema con la relación de confianza de IAM
<a name="sagemaker-hyperpod-model-deployment-ts-trust"></a>

HyperPod El operador de inferencia no puede comenzar con un AssumeRoleWithWebIdentity error de STS, lo que indica un problema de configuración de la relación de confianza de IAM.

**Mensaje de error:**

```
failed to enable inference watcher for HyperPod cluster *****: operation error SageMaker: UpdateClusterInference, 
get identity: get credentials: failed to refresh cached credentials, failed to retrieve credentials, 
operation error STS: AssumeRoleWithWebIdentity, https response error StatusCode: 403, RequestID: ****, 
api error AccessDenied: Not authorized to perform sts:AssumeRoleWithWebIdentity
```

**Solución**:

Actualice la relación de confianza de la función de ejecución de IAM del operador de inferencia con la siguiente configuración.

Reemplace los siguientes marcadores de posición:
+ `<ACCOUNT_ID>`: Su ID de cuenta AWS 
+ `<REGION>`: Tu AWS región
+ `<OIDC_ID>`: el ID de proveedor OIDC de su clúster de Amazon EKS

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
            "Federated": "arn:aws:iam::<ACCOUNT_ID>:oidc-provider/oidc.eks.<REGION>.amazonaws.com/id/<OIDC_ID>"
            },
            "Action": "sts:AssumeRoleWithWebIdentity",
            "Condition": {
                "StringLike": {
                    "oidc.eks.<REGION>.amazonaws.com/id/<OIDC_ID>:sub": "system:serviceaccount:<namespace>:<service-account-name>",
                    "oidc.eks.<REGION>.amazonaws.com/id/<OIDC_ID>:aud": "sts.amazonaws.com"
                }
            }
        },
        {
            "Effect": "Allow",
            "Principal": {
                "Service": [
                    "sagemaker.amazonaws.com"
                ]
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
```

**Verificación:**

Tras actualizar la relación de confianza:

1. Compruebe la configuración del rol en la consola de IAM

1. Reinicie el operador de inferencia si es necesario

1. Supervise los registros del operador para que el arranque se inicie

# Falta un error en el complemento de la GPU NVIDIA
<a name="sagemaker-hyperpod-model-deployment-ts-gpu"></a>

La implementación del modelo falla debido a un error de insuficiencia de la GPU a pesar de tener nodos de GPU disponibles. Esto ocurre cuando el complemento del dispositivo NVIDIA no está instalado en el HyperPod clúster.

**Mensaje de error:**

```
0/15 nodes are available: 10 node(s) didn't match Pod's node affinity/selector, 
5 Insufficient nvidia.com/gpu. preemption: 0/15 nodes are available: 
10 Preemption is not helpful for scheduling, 5 No preemption victims found for incoming pod.
```

**Causa raíz:**
+ Kubernetes no puede detectar los recursos de la GPU sin el complemento de dispositivo NVIDIA
+ Provoca errores en la programación de las cargas de trabajo de la GPU

**Solución**:

Instala el complemento de GPU de NVIDIA ejecutando:

```
kubectl create -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/refs/tags/v0.17.1/deployments/static/nvidia-device-plugin.yml
```

**Pasos de verificación:**

1. Comprueba el estado de despliegue del plugin:

   ```
   kubectl get pods -n kube-system | grep nvidia-device-plugin
   ```

1. Comprueba que los recursos de la GPU estén ahora visibles:

   ```
   kubectl get nodes -o=custom-columns=NAME:.metadata.name,GPU:.status.allocatable.nvidia\\.com/gpu
   ```

1. Vuelva a intentar el despliegue del modelo

**nota**  
Asegúrese de que los controladores NVIDIA estén instalados en los nodos de la GPU. La instalación del plugin se realiza una sola vez por clúster. Es posible que se requieran privilegios de administrador del clúster para su instalación.

# El operador de inferencia no se puede iniciar
<a name="sagemaker-hyperpod-model-deployment-ts-startup"></a>

El módulo del operador de inferencia no se pudo iniciar y está provocando el siguiente mensaje de error. Este error se debe a que la política de permisos sobre la función de ejecución del operador no está autorizada a desempeñar`sts:AssumeRoleWithWebIdentity`. Debido a esto, la parte del operador que se ejecuta en el plano de control no se inicia.

**Mensaje de error:**

```
Warning Unhealthy 5m46s (x22 over 49m) kubelet Startup probe failed: Get "http://10.1.100.59:8081/healthz": context deadline exceeded (Client.Timeout exceeded while awaiting headers)
```

**Causa raíz:**
+ La política de permisos de la función de ejecución del operador de inferencia no está configurada para acceder al token de autorización de los recursos.

**Solución**:

Establezca la siguiente política de la función de ejecución del `EXECUTION_ROLE_ARN` operador de HyperPod inferencia:

```
HyperpodInferenceAccessPolicy-ml-cluster to include all resources
```

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:PutObject",
                "s3:GetObject",
                "s3:DeleteObject"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ecr:GetAuthorizationToken"
            ],
            "Resource": "*"
        }
    ]
}
```

------

**Pasos de verificación:**

1. Cambiar la política.

1. Finalice el módulo del operador HyperPod de inferencia.

1. El pod se reiniciará sin que se produzcan excepciones.