HyperPod pemecahan masalah inferensi - Amazon SageMaker AI

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

HyperPod pemecahan masalah inferensi

Panduan pemecahan masalah ini membahas masalah umum yang dapat terjadi selama penerapan dan pengoperasian SageMaker HyperPod inferensi Amazon. Masalah ini biasanya melibatkan konfigurasi jaringan VPC, izin IAM, manajemen sumber daya Kubernetes, dan masalah konektivitas operator yang dapat mencegah penerapan model yang berhasil atau menyebabkan penerapan gagal atau tetap dalam status tertunda.

Panduan pemecahan masalah ini menggunakan terminologi berikut: Langkah pemecahan masalah adalah prosedur diagnostik untuk mengidentifikasi dan menyelidiki masalah, Resolusi menyediakan tindakan spesifik untuk memperbaiki masalah yang teridentifikasi, dan Verifikasi mengonfirmasi bahwa solusi bekerja dengan benar.

Referensi cepat: Temukan masalah Anda

Gunakan kategori berikut untuk menemukan bagian pemecahan masalah yang relevan dengan masalah Anda dengan cepat:

Instalasi add-on inferensi gagal karena driver CSI hilang

Masalah: Pembuatan add-on operator inferensi gagal karena dependensi driver CSI yang diperlukan tidak diinstal pada cluster EKS.

Gejala dan diagnosis

Pesan kesalahan:

Kesalahan berikut muncul di log pembuatan add-on atau log operator inferensi:

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.

Langkah-langkah diagnostik:

  1. Periksa apakah driver CSI diinstal:

    # 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. Periksa status add-on 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. Periksa status add-on operator inferensi:

    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

Resolusi

Langkah 1: Instal driver S3 CSI yang hilang

  1. Buat peran IAM untuk driver S3 CSI (jika belum dibuat):

    # 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. Instal add-on 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
  3. Verifikasi instalasi 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

Langkah 2: Instal driver FSx CSI yang hilang

  1. Buat peran IAM untuk driver FSx CSI (jika belum dibuat):

    # 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. Instal add-on 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

Verifikasi Semua Dependensi

Setelah menginstal dependensi yang hilang, verifikasi bahwa dependensi tersebut berjalan dengan benar sebelum mencoba kembali instalasi operator inferensi:

# 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

Definisi Sumber Daya Kustom Inferensi tidak ada selama penerapan model

Masalah: Definisi Sumber Daya Kustom (CRDs) hilang saat Anda mencoba membuat penerapan model. Masalah ini terjadi ketika Anda sebelumnya menginstal dan menghapus add-on inferensi tanpa membersihkan penerapan model yang memiliki finalizer.

Gejala dan diagnosis

Akar penyebab:

Jika Anda menghapus add-on inferensi tanpa terlebih dahulu menghapus semua penerapan model, sumber daya khusus dengan finalizer tetap ada di cluster. Finalizer ini harus diselesaikan sebelum Anda dapat menghapus file. CRDs Proses penghapusan add-on tidak menunggu penghapusan CRD selesai, yang menyebabkan tetap dalam status penghentian dan CRDs mencegah instalasi baru.

Untuk mendiagnosis masalah ini

  1. Periksa apakah CRDs ada.

    kubectl get crd | grep inference.sagemaker.aws.amazon.com
  2. Periksa sumber daya kustom yang macet.

    # Check for JumpStartModel resources kubectl get jumpstartmodels -A # Check for InferenceEndpointConfig resources kubectl get inferenceendpointconfigs -A
  3. Periksa finalizer pada sumber daya yang macet.

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

Resolusi

Hapus finalizer secara manual dari semua penerapan model yang tidak dihapus saat Anda menghapus add-on inferensi. Selesaikan langkah-langkah berikut untuk setiap sumber daya kustom yang macet.

Untuk menghapus finalizer dari sumber daya JumpStartModel

  1. Daftar semua JumpStartModel sumber daya di semua ruang nama.

    kubectl get jumpstartmodels -A
  2. Untuk setiap JumpStartModel sumber daya, hapus finalizer dengan menambal sumber daya untuk menyetel metadata.finalizers ke array kosong.

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

    Contoh berikut menunjukkan cara menambal sumber daya bernama kv-l1-only.

    kubectl patch jumpstartmodels kv-l1-only -n default -p '{"metadata":{"finalizers":[]}}' --type=merge
  3. Verifikasi bahwa contoh model dihapus.

    kubectl get jumpstartmodels -A

    Ketika semua sumber daya dibersihkan, Anda akan melihat output berikut.

    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. Verifikasi bahwa JumpStartModel CRD dihapus.

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

    Jika CRD berhasil dihapus, perintah ini tidak mengembalikan output.

Untuk menghapus finalizer dari sumber daya InferenceEndpointConfig

  1. Daftar semua InferenceEndpointConfig sumber daya di semua ruang nama.

    kubectl get inferenceendpointconfigs -A
  2. Untuk setiap InferenceEndpointConfig sumber daya, hapus finalizer.

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

    Contoh berikut menunjukkan cara menambal sumber daya bernama my-inference-config.

    kubectl patch inferenceendpointconfigs my-inference-config -n default -p '{"metadata":{"finalizers":[]}}' --type=merge
  3. Verifikasi bahwa instance konfigurasi dihapus.

    kubectl get inferenceendpointconfigs -A

    Ketika semua sumber daya dibersihkan, Anda akan melihat output berikut.

    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. Verifikasi bahwa InferenceEndpointConfig CRD dihapus.

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

    Jika CRD berhasil dihapus, perintah ini tidak mengembalikan output.

Untuk menginstal ulang add-on inferensi

Setelah Anda membersihkan semua sumber daya yang macet dan memverifikasi bahwa CRDs telah dihapus, instal ulang add-on inferensi. Untuk informasi selengkapnya, lihat Menginstal Operator Inferensi dengan add-on EKS.

Verifikasi

  1. Verifikasi bahwa add-on inferensi berhasil diinstal.

    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

    Status harus AKTIF dan Kesehatan harus SEHAT.

  2. Verifikasi bahwa CRDs sudah terpasang dengan benar.

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

    Anda akan melihat inferensi terkait CRDs tercantum dalam output.

  3. Uji pembuatan penerapan model baru untuk mengonfirmasi bahwa masalah telah teratasi.

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

Pencegahan

Untuk mencegah masalah ini, selesaikan langkah-langkah berikut sebelum Anda menghapus add-on inferensi.

  1. Hapus semua penerapan model.

    # 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. Verifikasi bahwa semua sumber daya kustom dihapus.

  3. Setelah Anda mengonfirmasi bahwa semua sumber daya dibersihkan, hapus add-on inferensi.

Instalasi add-on inferensi gagal karena pengelola sertifikat tidak ada

Masalah: Pembuatan add-on operator inferensi gagal karena Add-On EKS manajer sertifikat tidak diinstal, sehingga tidak ada Definisi Sumber Daya Kustom (). CRDs

Gejala dan diagnosis

Pesan kesalahan:

Kesalahan berikut muncul di log pembuatan add-on atau log operator inferensi:

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.

Langkah-langkah diagnostik:

  1. Periksa apakah cert-manager diinstal:

    # 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. Periksa status add-on operator inferensi:

    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

Resolusi

Langkah 1: Instal add-on cert-manager

  1. Instal add-on 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
  2. Verifikasi instalasi 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

Langkah 2: Coba lagi instalasi operator inferensi

  1. Setelah cert-manager diinstal, coba lagi instalasi operator inferensi:

    # 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. Pantau instalasi:

    # 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

Instalasi add-on inferensi gagal karena ALB Controller hilang

Masalah: Pembuatan add-on operator inferensi gagal karena Load AWS Balancer Controller tidak diinstal atau tidak dikonfigurasi dengan benar untuk add-on inferensi.

Gejala dan diagnosis

Pesan kesalahan:

Kesalahan berikut muncul di log pembuatan add-on atau log operator inferensi:

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.

Langkah-langkah diagnostik:

  1. Periksa apakah ALB Controller diinstal:

    # 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. Periksa konfigurasi add-on operator inferensi:

    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

Resolusi

Pilih salah satu opsi berikut berdasarkan pengaturan Anda:

Opsi 1: Biarkan add-on inferensi menginstal ALB Controller (Disarankan)

  • Pastikan peran ALB dibuat dan dikonfigurasi dengan benar dalam konfigurasi add-on Anda:

    # 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

Opsi 2: Gunakan instalasi ALB Controller yang ada

  • Jika Anda sudah menginstal ALB Controller, konfigurasikan add-on untuk menggunakan instalasi yang ada:

    # 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

Langkah 3: Coba lagi instalasi operator inferensi

  1. Instal ulang add-on operator inferensi dengan konfigurasi yang diperbarui:

    # 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. Verifikasi ALB Controller berfungsi:

    # 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

Instalasi add-on inferensi gagal karena operator KEDA hilang

Masalah: Pembuatan add-on operator inferensi gagal karena operator KEDA (Kubernetes Event Driven Autoscaler) tidak diinstal atau tidak dikonfigurasi dengan benar untuk add-on inferensi.

Gejala dan diagnosis

Pesan kesalahan:

Kesalahan berikut muncul di log pembuatan add-on atau log operator inferensi:

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

Langkah-langkah diagnostik:

  1. Periksa apakah operator KEDA diinstal:

    # 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. Periksa konfigurasi add-on operator inferensi:

    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

Resolusi

Pilih salah satu opsi berikut berdasarkan pengaturan Anda:

Opsi 1: Biarkan add-on inferensi menginstal KEDA (Disarankan)

  • Pastikan peran KEDA dibuat dan dikonfigurasi dengan benar dalam konfigurasi add-on Anda:

    # 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

Opsi 2: Gunakan instalasi KEDA yang ada

  • Jika Anda sudah menginstal KEDA, konfigurasikan add-on untuk menggunakan instalasi yang ada:

    # 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

Langkah 3: Coba lagi instalasi operator inferensi

  1. Instal ulang add-on operator inferensi dengan konfigurasi yang diperbarui:

    # 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. Verifikasi KEDA berfungsi:

    # 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

Batas waktu pengunduhan sertifikat

Saat menerapkan titik akhir SageMaker AI, proses pembuatan gagal karena ketidakmampuan untuk mengunduh sertifikat otoritas sertifikat (CA) di lingkungan VPC. Untuk langkah-langkah konfigurasi terperinci, lihat panduan Admin.

Pesan kesalahan:

Kesalahan berikut muncul di CloudWatch log titik akhir SageMaker AI:

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

Akar penyebab:

  • Masalah ini terjadi ketika operator inferensi tidak dapat mengakses sertifikat yang ditandatangani sendiri di Amazon S3 dalam VPC Anda

  • Konfigurasi yang tepat dari titik akhir VPC Amazon S3 sangat penting untuk akses sertifikat

Resolusi:

  1. Jika Anda tidak memiliki titik akhir VPC Amazon S3:

  2. Jika Anda sudah memiliki titik akhir VPC Amazon S3:

    • Pastikan tabel rute subnet dikonfigurasi untuk menunjuk ke titik akhir VPC (jika menggunakan titik akhir gateway) atau DNS pribadi diaktifkan untuk titik akhir antarmuka.

    • Titik akhir VPC Amazon S3 harus mirip dengan konfigurasi yang disebutkan di bagian 5.3 Langkah pembuatan titik akhir

Penerapan model macet dalam status tertunda

Saat menerapkan model, penerapan tetap dalam status “Tertunda” untuk waktu yang lama. Ini menunjukkan bahwa operator inferensi tidak dapat memulai penerapan model di cluster Anda. HyperPod

Komponen yang terpengaruh:

Selama penerapan normal, operator inferensi harus:

  • Menyebarkan pod model

  • Buat penyeimbang beban

  • Buat SageMaker titik akhir AI

Langkah pemecahan masalah:

  1. Periksa status pod operator inferensi:

    kubectl get pods -n hyperpod-inference-system

    Contoh keluaran yang diharapkan:

    NAME READY STATUS RESTARTS AGE hyperpod-inference-operator-controller-manager-65c49967f5-894fg 1/1 Running 0 6d13h
  2. Tinjau log operator inferensi dan periksa log operator untuk pesan kesalahan:

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

Apa yang harus dicari:

  • Pesan galat di log operator

  • Status pod operator

  • Setiap peringatan atau kegagalan terkait penerapan

catatan

Penerapan yang sehat harus berkembang melampaui status “Tertunda” dalam waktu yang wajar. Jika masalah tetap ada, tinjau log operator inferensi untuk pesan kesalahan tertentu guna menentukan akar penyebabnya.

Penerapan model pemecahan masalah status gagal

Ketika penerapan model memasuki status “Gagal”, kegagalan dapat terjadi di salah satu dari tiga komponen:

  • Penyebaran pod model

  • Pembuatan penyeimbang beban

  • SageMaker Pembuatan titik akhir AI

Langkah pemecahan masalah:

  1. Periksa status operator inferensi:

    kubectl get pods -n hyperpod-inference-system

    Keluaran yang diharapkan

    NAME READY STATUS RESTARTS AGE hyperpod-inference-operator-controller-manager-65c49967f5-894fg 1/1 Running 0 6d13h
  2. Tinjau log operator:

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

Apa yang harus dicari:

Log operator akan menunjukkan komponen mana yang gagal:

  • Kegagalan penerapan pod model

  • Masalah pembuatan penyeimbang beban

  • SageMaker Kesalahan titik akhir AI

Memeriksa kemajuan penerapan model

Untuk memantau kemajuan penerapan model Anda dan mengidentifikasi potensi masalah, Anda dapat menggunakan perintah kubectl untuk memeriksa status berbagai komponen. Ini membantu menentukan apakah penerapan berjalan normal atau mengalami masalah selama pembuatan pod model, pengaturan penyeimbang beban, atau fase konfigurasi titik akhir SageMaker AI.

Metode 1: Periksa status JumpStart model

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

Indikator status kunci untuk memantau:

  1. Status Penerapan

    • CariStatus.State: Harus menunjukkan DeploymentComplete

    • Memeriksa Status.Deployment Status.Available Replicas

    • Status.ConditionsMemantau kemajuan penerapan

  2. SageMaker Status Titik Akhir AI

    • PeriksaStatus.Endpoints.Sagemaker.State: Harus menunjukkan CreationCompleted

    • Verifikasi Status.Endpoints.Sagemaker.Endpoint Arn

  3. Status Sertifikat TLS

    • Lihat Status.Tls Certificate detail

    • Periksa kedaluwarsa sertifikat di Last Cert Expiry Time

Metode 2: Periksa konfigurasi titik akhir inferensi

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

Status umum:

  • DeploymentInProgress: Fase penyebaran awal

  • DeploymentComplete: Penerapan yang berhasil

  • Failed: Penerapan gagal

catatan

Pantau bagian Acara untuk setiap peringatan atau kesalahan. Periksa jumlah replika yang cocok dengan konfigurasi yang diharapkan. Verifikasi semua kondisi ditampilkan Status: True untuk penerapan yang sehat.

Masalah izin VPC ENI

SageMaker Pembuatan titik akhir AI gagal karena izin yang tidak memadai untuk membuat antarmuka jaringan di VPC.

Pesan kesalahan:

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

Akar penyebab:

Peran eksekusi operator inferensi tidak memiliki izin Amazon EC2 yang diperlukan untuk membuat antarmuka jaringan (ENI) di VPC.

Resolusi:

Tambahkan izin IAM berikut ke peran eksekusi operator inferensi:

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

Verifikasi:

Setelah menambahkan izin:

  1. Hapus titik akhir yang gagal (jika ada)

  2. Coba lagi pembuatan titik akhir

  3. Pantau status penerapan agar berhasil diselesaikan

catatan

Izin ini penting untuk titik akhir SageMaker AI yang berjalan dalam mode VPC. Pastikan peran eksekusi memiliki semua izin terkait VPC lainnya yang diperlukan juga.

Masalah hubungan kepercayaan IAM

HyperPod operator inferensi gagal memulai dengan AssumeRoleWithWebIdentity kesalahan STS, menunjukkan masalah konfigurasi hubungan kepercayaan IAM.

Pesan kesalahan:

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

Resolusi:

Perbarui hubungan kepercayaan peran eksekusi IAM operator inferensi dengan konfigurasi berikut.

Ganti placeholder berikut:

  • <ACCOUNT_ID>: ID AWS akun Anda

  • <REGION>: AWS Wilayah Anda

  • <OIDC_ID>: ID penyedia OIDC klaster Amazon EKS Anda

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" } ] }

Verifikasi:

Setelah memperbarui hubungan kepercayaan:

  1. Verifikasi konfigurasi peran di konsol IAM

  2. Mulai ulang operator inferensi jika perlu

  3. Pantau log operator untuk startup yang sukses

Kesalahan plugin GPU NVIDIA tidak ada

Penerapan model gagal dengan kesalahan ketidakcukupan GPU meskipun memiliki node GPU yang tersedia. Ini terjadi ketika plugin perangkat NVIDIA tidak diinstal di HyperPod cluster.

Pesan kesalahan:

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.

Akar penyebab:

  • Kubernetes tidak dapat mendeteksi sumber daya GPU tanpa plugin perangkat NVIDIA

  • Menghasilkan kegagalan penjadwalan untuk beban kerja GPU

Resolusi:

Instal plugin NVIDIA GPU dengan menjalankan:

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

Langkah-langkah verifikasi:

  1. Periksa status penyebaran plugin:

    kubectl get pods -n kube-system | grep nvidia-device-plugin
  2. Verifikasi sumber daya GPU sekarang terlihat:

    kubectl get nodes -o=custom-columns=NAME:.metadata.name,GPU:.status.allocatable.nvidia\\.com/gpu
  3. Coba lagi penerapan model

catatan

Pastikan driver NVIDIA diinstal pada node GPU. Instalasi plugin adalah pengaturan satu kali per cluster. Mungkin memerlukan hak istimewa admin cluster untuk menginstal.

Operator inferensi gagal memulai

Pod operator inferensi gagal memulai dan menyebabkan pesan kesalahan berikut. Kesalahan ini disebabkan oleh kebijakan izin pada peran eksekusi operator yang tidak diizinkan untuk dilakukansts:AssumeRoleWithWebIdentity. Karena ini, bagian operator yang berjalan di bidang kontrol tidak dimulai.

Pesan kesalahan:

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)

Akar penyebab:

  • Kebijakan izin dari peran eksekusi operator inferensi tidak disetel untuk mengakses token otorisasi untuk sumber daya.

Resolusi:

Tetapkan kebijakan berikut untuk peran eksekusi EXECUTION_ROLE_ARN untuk operator HyperPod inferensi:

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": "*" } ] }

Langkah-langkah verifikasi:

  1. Ubah kebijakan.

  2. Mengakhiri pod operator HyperPod inferensi.

  3. Pod akan dimulai ulang tanpa membuang pengecualian apa pun.