HyperPod solución de problemas de inferencias - Amazon SageMaker AI

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

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.

Referencia rápida: encuentra tu problema

Utilice las siguientes categorías para localizar rápidamente la sección de solución de problemas correspondiente a su problema:

Falló la instalación del complemento de inferencia debido a la falta de controladores CSI

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

Resolució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"
  2. 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
  3. 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"
  2. 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

Verifique 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

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
  2. Comprueba si hay recursos personalizados atascados.

    # Check for JumpStartModel resources kubectl get jumpstartmodels -A # Check for InferenceEndpointConfig resources kubectl get inferenceendpointconfigs -A
  3. 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}'

Resolució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
  2. 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
  3. 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)
  4. 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
  2. Para cada InferenceEndpointConfig recurso, elimina los finalizadores.

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

    En el siguiente ejemplo, se 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
  3. 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)
  4. 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.

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.

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

  3. 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
  2. Compruebe que se hayan eliminado todos los recursos personalizados.

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

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"
  2. 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

Resolució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
  2. 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
  2. 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

Problema: La creación del complemento del operador de inferencia falla porque la controladora del AWS Load Balancer no está instalada o no está configurada 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"
  2. 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

Resolució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 esté creada y configurada 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
  2. 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

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"
  2. 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

Resolució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
  2. 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

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.

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.

  2. 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 que se menciona en la sección 5.3 (paso de creación del punto de conexión)

La implementación del modelo está atascada en estado pendiente

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

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
  2. 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 pod del 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

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

    • BusqueStatus.State: Debería mostrarse DeploymentComplete

    • Compruebe Status.Deployment Status.Available Replicas

    • Supervise Status.Conditions el progreso de la implementación

  2. SageMaker Estado del terminal de IA

    • ComprobarStatus.Endpoints.Sagemaker.State: debería mostrarse CreationCompleted

    • Verificar Status.Endpoints.Sagemaker.Endpoint Arn

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

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)

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

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

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

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::111122223333:oidc-provider/oidc.eks.us-east-2.amazonaws.com/id/<OIDC_ID>" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringLike": { "oidc.eks.us-east-2.amazonaws.com/id/<OIDC_ID>:sub": "system:serviceaccount:<namespace>:<service-account-name>", "oidc.eks.us-east-2.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

  2. Reinicie el operador de inferencia si es necesario

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

Falta un error en el complemento de la GPU NVIDIA

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
  2. 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
  3. 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

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ñarsts: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.

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

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