As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Falhas de instalação do operador de inferência por meio da CLI AWS
Visão geral: ao instalar o operador de inferência por meio da AWS CLI, a instalação do complemento pode falhar devido à falta de dependências. Esta seção aborda cenários comuns de falha na instalação da CLI e suas resoluções.
Falha na instalação do complemento de inferência devido à falta de drivers CSI
Problema: a criação do complemento do operador de inferência falha porque as dependências necessárias do driver CSI não estão instaladas no cluster EKS.
Sintomas e diagnóstico:
Mensagens de erro:
Os seguintes erros aparecem nos registros de criação do complemento ou nos registros do operador de inferência:
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.
Etapas de diagnóstico:
-
Verifique se os drivers CSI estão 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 -
Verifique o status do 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" -
Verifique o status do complemento do operador de inferência:
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
Resolução:
Etapa 1: instalar o driver CSI S3 ausente
-
Crie a função IAM para o driver CSI do S3 (se ainda não tiver sido criada):
# 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" -
Instale o complemento do driver S3 CSI:
aws eks create-addon \ --cluster-name $EKS_CLUSTER_NAME \ --addon-name aws-mountpoint-s3-csi-driver \ --addon-version v1.14.1-eksbuild.1 \ --service-account-role-arn $S3_CSI_ROLE_ARN \ --region $REGION -
Verifique a instalação do driver S3 CSI:
# Wait for add-on to be active aws eks wait addon-active --cluster-name $EKS_CLUSTER_NAME --addon-name aws-mountpoint-s3-csi-driver --region $REGION # Verify CSI driver is available kubectl get csidriver s3.csi.aws.com kubectl get pods -n kube-system | grep mountpoint
Etapa 2: instalar o driver FSx CSI ausente
-
Crie a função IAM para o driver FSx CSI (se ainda não tiver sido criada):
# 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" -
Instale o complemento do driver FSx 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
Etapa 3: verificar todas as dependências
Depois de instalar as dependências ausentes, verifique se elas estão funcionando corretamente antes de tentar novamente a instalação do operador de inferência:
# 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
Definições de recursos personalizados de inferência estão ausentes durante a implantação do modelo
Problema: Faltam definições de recursos personalizados (CRDs) quando você tenta criar implantações de modelo. Esse problema ocorre quando você instalou e excluiu anteriormente o complemento de inferência sem limpar as implantações do modelo que têm finalizadores.
Sintomas e diagnóstico:
Causa raiz:
Se você excluir o complemento de inferência sem primeiro remover todas as implantações do modelo, os recursos personalizados com finalizadores permanecerão no cluster. Esses finalizadores devem ser concluídos antes que você possa excluir o. CRDs O processo de exclusão do complemento não espera a conclusão da exclusão do CRD, o que faz com que ele permaneça em um estado de encerramento e impede novas instalações. CRDs
Para diagnosticar esse problema
-
Verifique se CRDs existe.
kubectl get crd | grep inference.sagemaker.aws.amazon.com -
Verifique se há recursos personalizados bloqueados.
# Check for JumpStartModel resources kubectl get jumpstartmodels -A # Check for InferenceEndpointConfig resources kubectl get inferenceendpointconfigs -A -
Inspecione os finalizadores em recursos bloqueados.
# 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}'
Resolução:
Remova manualmente os finalizadores de todas as implantações do modelo que não foram excluídas quando você removeu o complemento de inferência. Conclua as etapas a seguir para cada recurso personalizado bloqueado.
Para remover finalizadores dos recursos JumpStartModel
-
Liste todos os JumpStartModel recursos em todos os namespaces.
kubectl get jumpstartmodels -A -
Para cada JumpStartModel recurso, remova os finalizadores corrigindo o recurso para definir metadata.finalizers como uma matriz vazia.
kubectl patch jumpstartmodels <model-name> -n <namespace> -p '{"metadata":{"finalizers":[]}}' --type=mergeO exemplo a seguir mostra como corrigir um recurso chamado kv-l1-only.
kubectl patch jumpstartmodels kv-l1-only -n default -p '{"metadata":{"finalizers":[]}}' --type=merge -
Verifique se a instância do modelo foi excluída.
kubectl get jumpstartmodels -AQuando todos os recursos estiverem limpos, você deverá ver o seguinte 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) -
Verifique se o JumpStartModel CRD foi removido.
kubectl get crd | grep jumpstartmodels---inference---sagemaker---aws.amazon.com.rproxy.govskope.caSe o CRD for removido com sucesso, esse comando não retornará nenhuma saída.
Para remover finalizadores dos recursos InferenceEndpointConfig
-
Liste todos os InferenceEndpointConfig recursos em todos os namespaces.
kubectl get inferenceendpointconfigs -A -
Para cada InferenceEndpointConfig recurso, remova os finalizadores.
kubectl patch inferenceendpointconfigs <config-name> -n <namespace> -p '{"metadata":{"finalizers":[]}}' --type=mergeO exemplo a seguir mostra como corrigir um recurso chamado my-inference-config.
kubectl patch inferenceendpointconfigs my-inference-config -n default -p '{"metadata":{"finalizers":[]}}' --type=merge -
Verifique se a instância de configuração foi excluída.
kubectl get inferenceendpointconfigs -AQuando todos os recursos estiverem limpos, você deverá ver o seguinte 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) -
Verifique se o InferenceEndpointConfig CRD foi removido.
kubectl get crd | grep inferenceendpointconfigs---inference---sagemaker---aws.amazon.com.rproxy.govskope.caSe o CRD for removido com sucesso, esse comando não retornará nenhuma saída.
Para reinstalar o complemento de inferência
Depois de limpar todos os recursos bloqueados e verificar se CRDs eles foram removidos, reinstale o complemento de inferência. Para obter mais informações, consulte Instalando o operador de inferência com o complemento EKS.
Verificação:
-
Verifique se o complemento de inferência foi instalado com êxito.
aws eks describe-addon \ --cluster-name $EKS_CLUSTER_NAME \ --addon-name amazon-sagemaker-hyperpod-inference \ --region $REGION \ --query "addon.{Status:status,Health:health}" \ --output tableO Status deve ser ATIVO e a Saúde deve ser SAUDÁVEL.
-
Verifique se CRDs estão instalados corretamente.
kubectl get crd | grep inference---sagemaker---aws.amazon.com.rproxy.govskope.caVocê deve ver o relacionado à inferência CRDs listado na saída.
-
Teste a criação de uma nova implantação de modelo para confirmar se o problema foi resolvido.
# Create a test deployment using your preferred method kubectl apply -f <your-model-deployment.yaml>
Prevenção:
Para evitar esse problema, conclua as etapas a seguir antes de desinstalar o complemento de inferência.
-
Exclua todas as implantações do modelo.
# 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 -
Verifique se todos os recursos personalizados foram excluídos.
-
Depois de confirmar que todos os recursos foram limpos, exclua o complemento de inferência.
Falha na instalação do complemento de inferência devido à falta do cert-manager
Problema: a criação do complemento do operador de inferência falha porque o complemento EKS do cert-manager não está instalado, resultando na ausência de definições de recursos personalizados (). CRDs
Sintomas e diagnóstico:
Mensagens de erro:
Os seguintes erros aparecem nos registros de criação do complemento ou nos registros do operador de inferência:
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.
Etapas de diagnóstico:
-
Verifique se o cert-manager 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" -
Verifique o status do complemento do operador de inferência:
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
Resolução:
Etapa 1: instalar o complemento cert-manager
-
Instale o complemento cert-manager EKS:
aws eks create-addon \ --cluster-name $EKS_CLUSTER_NAME \ --addon-name cert-manager \ --addon-version v1.18.2-eksbuild.2 \ --region $REGION -
Verifique a instalação do 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
Etapa 2: Repetir a instalação do operador de inferência
-
Depois que o cert-manager for instalado, tente novamente a instalação do operador de inferência:
# 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 -
Monitore a instalação:
# 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
Falha na instalação do complemento de inferência devido à falta do controlador ALB
Problema: a criação do complemento do operador de inferência falha porque o Load AWS Balancer Controller não está instalado ou não está configurado corretamente para o complemento de inferência.
Sintomas e diagnóstico:
Mensagens de erro:
Os seguintes erros aparecem nos registros de criação do complemento ou nos registros do operador de inferência:
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.
Etapas de diagnóstico:
-
Verifique se o 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" -
Verifique a configuração do complemento do operador de inferência:
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
Resolução:
Escolha uma das seguintes opções com base na sua configuração:
Opção 1: deixar o complemento de inferência instalar o controlador ALB (recomendado)
-
Verifique se a função ALB foi criada e configurada corretamente em sua configuração complementar:
# 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
Opção 2: Usar a instalação existente do controlador ALB
-
Se você já tiver o ALB Controller instalado, configure o complemento para usar a instalação 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
Etapa 3: Repetir a instalação do operador de inferência
-
Reinstale o complemento do operador de inferência com a configuração atualizada:
# 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 -
Verifique se o 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
Falha na instalação do complemento de inferência devido à falta do operador KEDA
Problema: a criação do complemento do operador de inferência falha porque o operador KEDA (Kubernetes Event Driven Autoscaler) não está instalado ou não está configurado adequadamente para o complemento de inferência.
Sintomas e diagnóstico:
Mensagens de erro:
Os seguintes erros aparecem nos registros de criação do complemento ou nos registros do operador de inferência:
KEDA operator not installed (missing keda-operator pods). KEDA can be installed separately in any namespace or via the Inference addon.
Etapas de diagnóstico:
-
Verifique se o 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" -
Verifique a configuração do complemento do operador de inferência:
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
Resolução:
Escolha uma das seguintes opções com base na sua configuração:
Opção 1: deixar o complemento de inferência instalar o KEDA (recomendado)
-
Verifique se a função KEDA foi criada e configurada corretamente na configuração do 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
Opção 2: Usar a instalação existente do KEDA
-
Se você já tem o KEDA instalado, configure o complemento para usar a instalação 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
Etapa 3: Repetir a instalação do operador de inferência
-
Reinstale o complemento do operador de inferência com a configuração atualizada:
# 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 -
Verifique se o 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