View a markdown version of this page

Kegagalan instalasi operator inferensi melalui AWS CLI - Amazon SageMaker AI

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

Kegagalan instalasi operator inferensi melalui AWS CLI

Ikhtisar: Saat menginstal operator inferensi melalui AWS CLI, instalasi add-on mungkin gagal karena dependensi yang hilang. Bagian ini mencakup skenario kegagalan instalasi CLI umum dan resolusinya.

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 galat:

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

Langkah 3: 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 khusus 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 galat:

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 galat:

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 galat:

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