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:
-
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 -
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" -
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
-
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" -
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 -
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
-
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" -
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
-
Periksa apakah CRDs ada.
kubectl get crd | grep inference.sagemaker.aws.amazon.com -
Periksa sumber daya khusus yang macet.
# Check for JumpStartModel resources kubectl get jumpstartmodels -A # Check for InferenceEndpointConfig resources kubectl get inferenceendpointconfigs -A -
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
-
Daftar semua JumpStartModel sumber daya di semua ruang nama.
kubectl get jumpstartmodels -A -
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=mergeContoh berikut menunjukkan cara menambal sumber daya bernama kv-l1-only.
kubectl patch jumpstartmodels kv-l1-only -n default -p '{"metadata":{"finalizers":[]}}' --type=merge -
Verifikasi bahwa contoh model dihapus.
kubectl get jumpstartmodels -AKetika 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) -
Verifikasi bahwa JumpStartModel CRD dihapus.
kubectl get crd | grep jumpstartmodels---inference---sagemaker---aws.amazon.com.rproxy.govskope.caJika CRD berhasil dihapus, perintah ini tidak mengembalikan output.
Untuk menghapus finalizer dari sumber daya InferenceEndpointConfig
-
Daftar semua InferenceEndpointConfig sumber daya di semua ruang nama.
kubectl get inferenceendpointconfigs -A -
Untuk setiap InferenceEndpointConfig sumber daya, hapus finalizer.
kubectl patch inferenceendpointconfigs <config-name> -n <namespace> -p '{"metadata":{"finalizers":[]}}' --type=mergeContoh berikut menunjukkan cara menambal sumber daya bernama my-inference-config.
kubectl patch inferenceendpointconfigs my-inference-config -n default -p '{"metadata":{"finalizers":[]}}' --type=merge -
Verifikasi bahwa instance konfigurasi dihapus.
kubectl get inferenceendpointconfigs -AKetika 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) -
Verifikasi bahwa InferenceEndpointConfig CRD dihapus.
kubectl get crd | grep inferenceendpointconfigs---inference---sagemaker---aws.amazon.com.rproxy.govskope.caJika 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:
-
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 tableStatus harus AKTIF dan Kesehatan harus SEHAT.
-
Verifikasi bahwa CRDs sudah terpasang dengan benar.
kubectl get crd | grep inference---sagemaker---aws.amazon.com.rproxy.govskope.caAnda akan melihat inferensi terkait CRDs tercantum dalam output.
-
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.
-
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 -
Verifikasi bahwa semua sumber daya kustom dihapus.
-
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:
-
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" -
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
-
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 -
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
-
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 -
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:
-
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" -
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
-
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 -
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:
-
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" -
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
-
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 -
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