기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
HyperPod 추론 문제 해결
이 문제 해결 가이드는 Amazon SageMaker HyperPod 추론 배포 및 작업 중에 발생할 수 있는 일반적인 문제를 다룹니다. 이러한 문제에는 일반적으로 VPC 네트워킹 구성, IAM 권한, Kubernetes 리소스 관리 및 성공적인 모델 배포를 방해하거나 배포가 실패하거나 보류 상태로 유지될 수 있는 운영자 연결 문제가 포함됩니다.
이 문제 해결 가이드는 다음 용어를 사용합니다. 문제 해결 단계는 문제를 식별하고 조사하는 진단 절차이며, 해결은 식별된 문제를 해결하기 위한 특정 작업을 제공하고, 확인은 솔루션이 올바르게 작동했는지 확인합니다.
빠른 참조: 문제 찾기
다음 범주를 사용하여 문제와 관련된 문제 해결 섹션을 빠르게 찾을 수 있습니다.
-
추가 기능 설치 문제 - CSI 드라이버 누락으로 인해 추론 추가 기능 설치 실패, 모델 배포 중에 추론 사용자 지정 리소스 정의가 누락되었습니다., cert-manager 누락으로 인해 추론 추가 기능 설치 실패, ALB 컨트롤러 누락으로 인해 추론 추가 기능 설치 실패, 참조 KEDA 연산자 누락으로 인해 추론 추가 기능 설치 실패
-
권한 및 IAM 문제 - VPC ENI 권한 문제, IAM 신뢰 관계 문제, 참조 추론 연산자가 시작되지 않음
-
배포 및 리소스 문제 - 모델 배포가 보류 중 상태로 멈춤, 모델 배포 실패 상태 문제 해결, 참조 NVIDIA GPU 플러그인 누락 오류
-
인증서 및 네트워킹 문제 - 단원인증서 다운로드 제한 시간을 참조하십시오. cert-manager 누락으로 인해 추론 추가 기능 설치 실패
CSI 드라이버 누락으로 인해 추론 추가 기능 설치 실패
문제: 필수 CSI 드라이버 종속성이 EKS 클러스터에 설치되지 않았기 때문에 추론 연산자 추가 기능 생성이 실패합니다.
증상 및 진단
오류 메시지:
추가 기능 생성 로그 또는 추론 연산자 로그에 다음 오류가 나타납니다.
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.
진단 단계:
-
CSI 드라이버가 설치되어 있는지 확인합니다.
# 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 -
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" -
추론 연산자 추가 기능 상태 확인:
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단계: 누락된 S3 CSI 드라이버 설치
-
S3 CSI 드라이버에 대한 IAM 역할 생성(아직 생성되지 않은 경우):
# 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" -
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 -
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
2단계: 누락된 FSx CSI 드라이버 설치
-
FSx CSI 드라이버에 대한 IAM 역할 생성(아직 생성되지 않은 경우):
# 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" -
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
모든 종속성 확인
누락된 종속성을 설치한 후 추론 연산자 설치를 다시 시도하기 전에 올바르게 실행되고 있는지 확인합니다.
# 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
모델 배포 중에 추론 사용자 지정 리소스 정의가 누락되었습니다.
문제: 모델 배포를 생성하려고 할 때 사용자 지정 리소스 정의(CRDs)가 누락되었습니다. 이 문제는 최종 사용자가 있는 모델 배포를 정리하지 않고 이전에 추론 추가 기능을 설치하고 삭제한 경우에 발생합니다.
증상 및 진단
근본 원인:
먼저 모든 모델 배포를 제거하지 않고 추론 추가 기능을 삭제하면 최종 사용자가 있는 사용자 지정 리소스가 클러스터에 남아 있습니다. CRDs를 삭제하려면 먼저 이러한 최종 사용자가 완료되어야 합니다. 추가 기능 삭제 프로세스는 CRD 삭제가 완료될 때까지 기다리지 않으므로 CRDs가 종료 상태로 유지되고 새 설치가 방지됩니다.
이 문제를 진단하려면
-
CRDs 존재하는지 확인합니다.
kubectl get crd | grep inference.sagemaker.aws.amazon.com -
멈춘 사용자 지정 리소스가 있는지 확인합니다.
# Check for JumpStartModel resources kubectl get jumpstartmodels -A # Check for InferenceEndpointConfig resources kubectl get inferenceendpointconfigs -A -
멈춘 리소스에 대해 최종 사용자를 검사합니다.
# 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}'
해결 방법
추론 추가 기능을 제거할 때 삭제되지 않은 모든 모델 배포에서 최종 사용자를 수동으로 제거합니다. 중단된 각 사용자 지정 리소스에 대해 다음 단계를 완료합니다.
JumpStartModel 리소스에서 최종 사용자를 제거하려면
-
모든 네임스페이스에서 모든 JumpStartModel 리소스를 나열합니다.
kubectl get jumpstartmodels -A -
각 JumpStartModel 리소스에 대해 리소스를 패치하여 metadata.finalizer를 빈 배열로 설정하여 최종자를 제거합니다.
kubectl patch jumpstartmodels <model-name> -n <namespace> -p '{"metadata":{"finalizers":[]}}' --type=merge다음 예제에서는 kv-l1-only라는 리소스를 패치하는 방법을 보여줍니다.
kubectl patch jumpstartmodels kv-l1-only -n default -p '{"metadata":{"finalizers":[]}}' --type=merge -
모델 인스턴스가 삭제되었는지 확인합니다.
kubectl get jumpstartmodels -A모든 리소스가 정리되면 다음 출력이 표시됩니다.
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) -
JumpStartModel CRD가 제거되었는지 확인합니다.
kubectl get crd | grep jumpstartmodels---inference---sagemaker---aws.amazon.com.rproxy.govskope.caCRD가 성공적으로 제거되면이 명령은 출력을 반환하지 않습니다.
InferenceEndpointConfig 리소스에서 최종 사용자를 제거하려면
-
모든 네임스페이스에서 모든 InferenceEndpointConfig 리소스를 나열합니다.
kubectl get inferenceendpointconfigs -A -
각 InferenceEndpointConfig 리소스에 대해 최종자를 제거합니다.
kubectl patch inferenceendpointconfigs <config-name> -n <namespace> -p '{"metadata":{"finalizers":[]}}' --type=merge다음 예제에서는 my-inference-config라는 리소스를 패치하는 방법을 보여줍니다.
kubectl patch inferenceendpointconfigs my-inference-config -n default -p '{"metadata":{"finalizers":[]}}' --type=merge -
구성 인스턴스가 삭제되었는지 확인합니다.
kubectl get inferenceendpointconfigs -A모든 리소스가 정리되면 다음 출력이 표시됩니다.
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) -
InferenceEndpointConfig CRD가 제거되었는지 확인합니다.
kubectl get crd | grep inferenceendpointconfigs---inference---sagemaker---aws.amazon.com.rproxy.govskope.caCRD가 성공적으로 제거되면이 명령은 출력을 반환하지 않습니다.
추론 추가 기능을 다시 설치하려면
멈춘 리소스를 모두 정리하고 CRDs 제거되었는지 확인한 후 추론 추가 기능을 다시 설치합니다. 자세한 내용은 EKS 추가 기능을 사용하여 추론 연산자 설치 단원을 참조하십시오.
Verification(확인)
-
추론 추가 기능이 성공적으로 설치되었는지 확인합니다.
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상태는 활성이어야 하고 상태는 정상이어야 합니다.
-
CRDs 올바르게 설치되었는지 확인합니다.
kubectl get crd | grep inference.sagemaker.aws.amazon.com출력에 추론 관련 CRDs가 나열됩니다.
-
새 모델 배포 생성을 테스트하여 문제가 해결되었는지 확인합니다.
# Create a test deployment using your preferred method kubectl apply -f <your-model-deployment.yaml>
예방책
이 문제를 방지하려면 추론 추가 기능을 제거하기 전에 다음 단계를 완료하세요.
-
모든 모델 배포를 삭제합니다.
# 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 -
모든 사용자 지정 리소스가 삭제되었는지 확인합니다.
-
모든 리소스가 정리되었는지 확인한 후 추론 추가 기능을 삭제합니다.
cert-manager 누락으로 인해 추론 추가 기능 설치 실패
문제: cert-manager EKS 추가 기능이 설치되지 않아 추론 연산자 추가 기능 생성이 실패하여 사용자 지정 리소스 정의(CRDs.
증상 및 진단
오류 메시지:
추가 기능 생성 로그 또는 추론 연산자 로그에 다음 오류가 나타납니다.
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.
진단 단계:
-
cert-manager가 설치되어 있는지 확인합니다.
# 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" -
추론 연산자 추가 기능 상태 확인:
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단계: cert-manager 추가 기능 설치
-
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 -
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
2단계: 추론 연산자 설치 재시도
-
cert-manager를 설치한 후 추론 연산자 설치를 다시 시도합니다.
# 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 -
설치를 모니터링합니다.
# 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
ALB 컨트롤러 누락으로 인해 추론 추가 기능 설치 실패
문제: AWS Load Balancer 컨트롤러가 설치되지 않았거나 추론 추가 기능에 대해 제대로 구성되지 않았기 때문에 추론 연산자 추가 기능 생성이 실패합니다.
증상 및 진단
오류 메시지:
추가 기능 생성 로그 또는 추론 연산자 로그에 다음 오류가 나타납니다.
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.
진단 단계:
-
ALB 컨트롤러가 설치되어 있는지 확인합니다.
# 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" -
추론 연산자 추가 기능 구성을 확인합니다.
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
해결 방법
설정에 따라 다음 옵션 중 하나를 선택합니다.
옵션 1: 추론 추가 기능이 ALB 컨트롤러를 설치하도록 허용(권장)
-
추가 기능 구성에서 ALB 역할이 생성되고 올바르게 구성되었는지 확인합니다.
# 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
옵션 2: 기존 ALB 컨트롤러 설치 사용
-
ALB 컨트롤러가 이미 설치되어 있는 경우 기존 설치를 사용하도록 추가 기능을 구성합니다.
# 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
3단계: 추론 연산자 설치 재시도
-
업데이트된 구성으로 추론 연산자 추가 기능을 다시 설치합니다.
# 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 -
ALB 컨트롤러가 작동하는지 확인합니다.
# 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
KEDA 연산자 누락으로 인해 추론 추가 기능 설치 실패
문제: KEDA(Kubernetes Event Driven Autoscaler) 연산자가 설치되어 있지 않거나 추론 추가 기능에 대해 제대로 구성되지 않았기 때문에 추론 연산자 추가 기능 생성이 실패합니다.
증상 및 진단
오류 메시지:
추가 기능 생성 로그 또는 추론 연산자 로그에 다음 오류가 나타납니다.
KEDA operator not installed (missing keda-operator pods). KEDA can be installed separately in any namespace or via the Inference addon.
진단 단계:
-
KEDA 연산자가 설치되어 있는지 확인합니다.
# 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" -
추론 연산자 추가 기능 구성을 확인합니다.
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
해결 방법
설정에 따라 다음 옵션 중 하나를 선택합니다.
옵션 1: 추론 추가 기능이 KEDA를 설치하도록 허용(권장)
-
추가 기능 구성에서 KEDA 역할이 생성되고 올바르게 구성되었는지 확인합니다.
# 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
옵션 2: 기존 KEDA 설치 사용
-
KEDA가 이미 설치되어 있는 경우 기존 설치를 사용하도록 추가 기능을 구성합니다.
# 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
3단계: 추론 연산자 설치 재시도
-
업데이트된 구성으로 추론 연산자 추가 기능을 다시 설치합니다.
# 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 -
KEDA가 작동하는지 확인합니다.
# 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
인증서 다운로드 제한 시간
SageMaker AI 엔드포인트를 배포할 때 VPC 환경에서 인증 기관(CA) 인증서를 다운로드할 수 없기 때문에 생성 프로세스가 실패합니다. 자세한 구성 단계는 관리자 안내서
오류 메시지:
SageMaker AI 엔드포인트 CloudWatch 로그에 다음 오류가 나타납니다.
Error downloading CA certificate: Connect timeout on endpoint URL: "https://****.s3.<REGION>.amazonaws.com/****/***.pem"
근본 원인:
-
이 문제는 추론 운영자가 VPC 내의 Amazon S3에서 자체 서명된 인증서에 액세스할 수 없을 때 발생합니다.
-
Amazon S3 VPC 엔드포인트의 적절한 구성은 인증서 액세스에 필수적입니다.
해결 방법:
-
Amazon S3 VPC 엔드포인트가 없는 경우:
-
관리자 안내서
의 섹션 5.3의 구성에 따라 Amazon S3 VPC 엔드포인트를 생성합니다.
-
-
Amazon S3 VPC 엔드포인트가 이미 있는 경우:
-
서브넷 라우팅 테이블이 VPC 엔드포인트를 가리키도록 구성되어 있는지(게이트웨이 엔드포인트를 사용하는 경우) 또는 프라이빗 DNS가 인터페이스 엔드포인트에 대해 활성화되어 있는지 확인합니다.
-
Amazon S3 VPC 엔드포인트는 섹션 5.3 엔드포인트 생성 단계에서 언급한 구성과 유사해야 합니다.
-
모델 배포가 보류 중 상태로 멈춤
모델을 배포할 때 배포는 장기간 "보류 중" 상태로 유지됩니다. 이는 추론 연산자가 HyperPod 클러스터에서 모델 배포를 시작할 수 없음을 나타냅니다.
영향을 받는 구성 요소:
정상적인 배포 중에 추론 연산자는 다음을 수행해야 합니다.
-
모델 포드 배포
-
로드 밸런서 생성
-
SageMaker AI 엔드포인트 생성
문제 해결 단계:
-
추론 연산자 포드 상태를 확인합니다.
kubectl get pods -n hyperpod-inference-system예상 출력 예제:
NAME READY STATUS RESTARTS AGE hyperpod-inference-operator-controller-manager-65c49967f5-894fg 1/1 Running 0 6d13h -
추론 연산자 로그를 검토하고 연산자 로그에서 오류 메시지를 검사합니다.
kubectl logs hyperpod-inference-operator-controller-manager-5b5cdd7757-txq8f -n hyperpod-inference-operator-system
찾아야 할 사항:
-
연산자 로그의 오류 메시지
-
연산자 포드의 상태
-
배포 관련 경고 또는 실패
참고
정상 배포는 적절한 시간 내에 "보류 중" 상태를 넘어 진행되어야 합니다. 문제가 지속되면 추론 연산자 로그에서 특정 오류 메시지를 검토하여 근본 원인을 확인합니다.
모델 배포 실패 상태 문제 해결
모델 배포가 "실패" 상태가 되면 다음 세 가지 구성 요소 중 하나에서 오류가 발생할 수 있습니다.
-
모델 포드 배포
-
로드 밸런서 생성
-
SageMaker AI 엔드포인트 생성
문제 해결 단계:
-
추론 연산자 상태를 확인합니다.
kubectl get pods -n hyperpod-inference-system예상 결과:
NAME READY STATUS RESTARTS AGE hyperpod-inference-operator-controller-manager-65c49967f5-894fg 1/1 Running 0 6d13h -
연산자 로그를 검토합니다.
kubectl logs hyperpod-inference-operator-controller-manager-5b5cdd7757-txq8f -n hyperpod-inference-operator-system
찾아야 할 사항:
연산자 로그에는 실패한 구성 요소가 표시됩니다.
-
모델 포드 배포 실패
-
로드 밸런서 생성 문제
-
SageMaker AI 엔드포인트 오류
모델 배포 진행 상황 확인
모델 배포 진행 상황을 모니터링하고 잠재적 문제를 식별하기 위해 kubectl 명령을 사용하여 다양한 구성 요소의 상태를 확인할 수 있습니다. 이를 통해 배포가 정상적으로 진행 중인지 또는 모델 포드 생성, 로드 밸런서 설정 또는 SageMaker AI 엔드포인트 구성 단계에서 문제가 발생했는지 확인할 수 있습니다.
방법 1: JumpStart 모델 상태 확인
kubectl describe jumpstartmodel.inference.sagemaker.aws.amazon.com/<model-name> -n <namespace>
모니터링할 주요 상태 표시기:
-
배포 상태
-
찾기
Status.State: 표시해야 함DeploymentComplete -
확인
Status.Deployment Status.Available Replicas -
Status.Conditions배포 진행 상황 모니터링
-
-
SageMaker AI 엔드포인트 상태
-
확인
Status.Endpoints.Sagemaker.State: 표시해야 함CreationCompleted -
확인
Status.Endpoints.Sagemaker.Endpoint Arn
-
-
TLS 인증서 상태
-
Status.Tls Certificate세부 정보 보기 -
에서 인증서 만료 확인
Last Cert Expiry Time
-
방법 2: 추론 엔드포인트 구성 확인
kubectl describe inferenceendpointconfig.inference.sagemaker.aws.amazon.com/<deployment_name> -n <namespace>
일반 상태:
-
DeploymentInProgress: 초기 배포 단계 -
DeploymentComplete: 배포 성공 -
Failed: 배포 실패
참고
이벤트 섹션에서 경고 또는 오류를 모니터링합니다. 복제본 수가 예상 구성과 일치하는지 확인합니다. 모든 조건이 정상 배포에 Status: True 대해 표시되는지 확인합니다.
VPC ENI 권한 문제
VPC에서 네트워크 인터페이스를 생성할 권한이 부족하여 SageMaker AI 엔드포인트 생성이 실패합니다.
오류 메시지:
Please ensure that the execution role for variant AllTraffic has sufficient permissions for creating an endpoint variant within a VPC
근본 원인:
추론 운영자의 실행 역할에는 VPC에서 네트워크 인터페이스(ENI)를 생성하는 데 필요한 Amazon EC2 권한이 없습니다.
해결 방법:
추론 연산자의 실행 역할에 다음 IAM 권한을 추가합니다.
{ "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterfacePermission" ], "Resource": "*" }
확인:
권한을 추가한 후:
-
실패한 엔드포인트 삭제(있는 경우)
-
엔드포인트 생성 재시도
-
배포 상태가 성공적으로 완료되었는지 모니터링
참고
이 권한은 VPC 모드에서 실행되는 SageMaker AI 엔드포인트에 필수적입니다. 실행 역할에 필요한 다른 모든 VPC 관련 권한도 있는지 확인합니다.
IAM 신뢰 관계 문제
HyperPod 추론 연산자가 STS AssumeRoleWithWebIdentity 오류로 시작되지 않아 IAM 신뢰 관계 구성 문제를 나타냅니다.
오류 메시지:
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
해결 방법:
다음 구성으로 추론 연산자의 IAM 실행 역할의 신뢰 관계를 업데이트합니다.
다음과 같이 자리 표시자를 바꿉니다.
-
<ACCOUNT_ID>: AWS 계정 ID -
<REGION>: AWS 리전 -
<OIDC_ID>: Amazon EKS 클러스터의 OIDC 공급자 ID
확인:
신뢰 관계를 업데이트한 후:
-
IAM 콘솔에서 역할 구성 확인
-
필요한 경우 추론 연산자를 다시 시작합니다.
-
성공적인 시작을 위한 운영자 로그 모니터링
NVIDIA GPU 플러그인 누락 오류
사용 가능한 GPU 노드가 있음에도 불구하고 GPU 부족 오류로 인해 모델 배포가 실패합니다. 이는 NVIDIA 디바이스 플러그인이 HyperPod 클러스터에 설치되지 않은 경우 발생합니다.
오류 메시지:
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.
근본 원인:
-
Kubernetes는 NVIDIA 디바이스 플러그인 없이 GPU 리소스를 감지할 수 없습니다.
-
GPU 워크로드에 대한 예약 실패 발생
해결 방법:
다음을 실행하여 NVIDIA GPU 플러그인을 설치합니다.
kubectl create -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/refs/tags/v0.17.1/deployments/static/nvidia-device-plugin.yml
확인 단계:
-
플러그인 배포 상태를 확인합니다.
kubectl get pods -n kube-system | grep nvidia-device-plugin -
이제 GPU 리소스가 표시되는지 확인합니다.
kubectl get nodes -o=custom-columns=NAME:.metadata.name,GPU:.status.allocatable.nvidia\\.com/gpu -
모델 배포 재시도
참고
NVIDIA 드라이버가 GPU 노드에 설치되어 있는지 확인합니다. 플러그인 설치는 클러스터당 일회성 설정입니다. 설치하려면 클러스터 관리자 권한이 필요할 수 있습니다.
추론 연산자가 시작되지 않음
추론 연산자 포드를 시작하지 못하여 다음 오류 메시지가 발생합니다. 이 오류는 운영자 실행 역할에 대한 권한 정책이를 수행할 권한이 없기 때문입니다sts:AssumeRoleWithWebIdentity. 이로 인해 컨트롤 플레인에서 실행 중인 연산자 부분이 시작되지 않습니다.
오류 메시지:
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)
근본 원인:
-
추론 연산자 실행 역할의 권한 정책은 리소스에 대한 권한 부여 토큰에 액세스하도록 설정되지 않았습니다.
해결 방법:
HyperPod 추론 연산자에 EXECUTION_ROLE_ARN 대해의 실행 역할에 대해 다음 정책을 설정합니다.
HyperpodInferenceAccessPolicy-ml-cluster to include all resources
확인 단계:
-
정책을 변경합니다.
-
HyperPod 추론 연산자 포드를 종료합니다.
-
포드는 예외를 발생시키지 않고 다시 시작됩니다.