Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Instance spot di Amazon SageMaker HyperPod
Amazon SageMaker HyperPod mendukung Instans EC2 Spot Amazon, memungkinkan penghematan biaya yang signifikan untuk beban kerja yang toleran terhadap kesalahan dan tanpa kewarganegaraan. AI/ML Kasus penggunaan termasuk inferensi batch dan pekerjaan pelatihan, penyetelan hiperparameter, dan beban kerja eksperimental. Anda juga dapat menggunakan Instans Spot untuk secara otomatis menskalakan kapasitas komputasi Anda ketika kapasitas berbiaya rendah ini tersedia dan skala kembali ke kapasitas Sesuai Permintaan ketika kapasitas Spot tambahan direklamasi.
Secara default, Instans Spot HyperPod bekerja dengan HyperPod fitur penyediaan berkelanjutan, yang memungkinkan SageMaker HyperPod untuk secara otomatis menyediakan kapasitas yang tersisa di latar belakang saat beban kerja segera dimulai pada instance yang tersedia. Saat penyediaan node mengalami kegagalan karena kendala kapasitas atau masalah lain, coba ulang SageMaker HyperPod secara otomatis di latar belakang hingga cluster mencapai skala yang diinginkan, sehingga operasi penskalaan otomatis Anda tetap tangguh dan tidak diblokir. Anda juga dapat menggunakan Instans Spot dengan penskalaan otomatis berbasis Karpenter.
Kemampuan & Konsep Utama untuk dipertimbangkan
-
Dapatkan penghematan biaya hingga 90% dibandingkan dengan instans On-Demand
-
Gunakan Instans Spot untuk pekerjaan yang dapat menangani interupsi dan di mana waktu mulai dan penyelesaian pekerjaan fleksibel
-
Saat menggunakan Karpenter untuk penskalaan otomatis, Anda dapat mengonfigurasi HyperPod untuk secara otomatis mundur ke On-Demand ketika kapasitas Spot terganggu atau tidak tersedia
-
Akses berbagai jenis instans CPU, GPU, dan akselerator yang didukung oleh HyperPod
-
Ketersediaan kapasitas tergantung pada pasokan dari EC2 dan bervariasi menurut wilayah dan jenis instans
-
Anda dapat melakukan berbagai tindakan seperti mengidentifikasi kemungkinan mendapatkan instance yang diinginkan atau terputus, menggunakan berbagai alat seperti Spot Instance Advisor
yang disediakan oleh EC2
Mulai menggunakan
Prasyarat
Sebelum Anda mulai, pastikan Anda memiliki:
AWS CLI diinstal dan dikonfigurasi
Siapkan AWS kredensil dan wilayah Anda:
aws configure
Lihat dokumentasi AWS kredensyal untuk instruksi terperinci.
Peran IAM untuk eksekusi SageMaker HyperPod
Untuk memperbarui cluster, Anda harus terlebih dahulu membuat izin AWS Identity and Access Management
Pengaturan Kluster VPC dan EKS
2.1 Buat VPC dan EKS Cluster
Ikuti panduan penyiapan HyperPod EKS untuk:
-
Buat VPC dengan subnet di beberapa Availability Zone
-
Buat kluster EKS
-
Instal dependensi yang diperlukan menggunakan bagan Helm
2.2 Tetapkan Variabel Lingkungan
export EKS_CLUSTER_ARN="arn:aws:eks:REGION:ACCOUNT_ID:cluster/CLUSTER_NAME" export EXECUTION_ROLE="arn:aws:iam::ACCOUNT_ID:role/SageMakerExecutionRole" export BUCKET_NAME="your-s3-bucket-name" export SECURITY_GROUP="sg-xxxxx" export SUBNET="subnet-xxxxx" export SUBNET1="subnet-xxxxx" export SUBNET2="subnet-xxxxx" export SUBNET3="subnet-xxxxx"
Kuota layanan untuk instans Spot
Pastikan Anda memiliki kuota yang diperlukan untuk instance yang akan Anda buat di cluster. SageMaker HyperPod Untuk meninjau kuota Anda, pada konsol Service Quotas, AWS pilih layanan di panel navigasi, lalu pilih. SageMaker Misalnya, tangkapan layar berikut menunjukkan kuota yang tersedia untuk instance c5.
Periksa Ketersediaan Spot
Sebelum membuat grup instans Spot, periksa ketersediaan di Availability Zone yang berbeda:
aws ec2 get-spot-placement-scores \ --region us-west-2 \ --instance-types c5.2xlarge \ --target-capacity 10 \ --single-availability-zone \ --region-names us-west-2
Tip: Target Availability Zone dengan skor penempatan yang lebih tinggi untuk ketersediaan yang lebih baik. Anda juga dapat memeriksa Spot Instance Advisor dan harga EC2 Spot untuk ketersediaan. Pilih Availability Zone yang diperlukan dengan skor ketersediaan yang lebih baik dan konfigurasikan grup Instance dengan subnet terkait untuk meluncurkan instance di AZ tersebut.
Membuat Grup Instance (Tanpa Penskalaan Otomatis)
CreateCluster (Tempat)
aws sagemaker create-cluster \ --cluster-name clusterNameHere \ --orchestrator 'Eks={ClusterArn='$EKS_CLUSTER_ARN'}' \ --node-provisioning-mode "Continuous" \ --cluster-role 'arn:aws:iam::YOUR-ACCOUNT-ID:role/SageMakerHyperPodRole' \ --instance-groups '[{ "InstanceGroupName": "auto-spot-c5-2x-az1", "InstanceType": "ml.c5.2xlarge", "InstanceCount": 2, "CapacityRequirements: { "Spot": {} } "LifeCycleConfig": { "SourceS3Uri": "s3://'$BUCKET_NAME'", "OnCreate": "on_create_noop.sh" }, "ExecutionRole": "'$EXECUTION_ROLE'", "ThreadsPerCore": 1, "OverrideVpcConfig": { "SecurityGroupIds": ["'$SECURITY_GROUP'"], "Subnets": ["'$SUBNET1'"] } }]' --vpc-config '{ "SecurityGroupIds": ["'$SECURITY_GROUP'"], "Subnets": ["'$SUBNET'"] }'
Update Cluster (Spot+Sesuai Permintaan)
aws sagemaker update-cluster \ --cluster-name "my-cluster" \ --instance-groups '[{ "InstanceGroupName": "auto-spot-c5-x-az3", "InstanceType": "ml.c5.xlarge", "InstanceCount": 2, "CapacityRequirements: { "Spot": {} }, "LifeCycleConfig": { "SourceS3Uri": "s3://'$BUCKET_NAME'", "OnCreate": "on_create_noop.sh" }, "ExecutionRole": "'$EXECUTION_ROLE'", "ThreadsPerCore": 1, "OverrideVpcConfig": { "SecurityGroupIds": ["'$SECURITY_GROUP'"], "Subnets": ["'$SUBNET3'"] } }, { "InstanceGroupName": "auto-spot-c5-2x-az2", "InstanceType": "ml.c5.2xlarge", "InstanceCount": 2, "CapacityRequirements: { "Spot": {} } "LifeCycleConfig": { "SourceS3Uri": "s3://'$BUCKET_NAME'", "OnCreate": "on_create_noop.sh" }, "ExecutionRole": "'$EXECUTION_ROLE'", "ThreadsPerCore": 1, "OverrideVpcConfig": { "SecurityGroupIds": ["'$SECURITY_GROUP'"], "Subnets": ["'$SUBNET2'"] } }, { "InstanceGroupName": "auto-ondemand-c5-2x-az1", "InstanceType": "ml.c5.2xlarge", "InstanceCount": 2, "LifeCycleConfig": { "SourceS3Uri": "s3://'$BUCKET_NAME'", "OnCreate": "on_create_noop.sh" }, "ExecutionRole": "'$EXECUTION_ROLE'", "ThreadsPerCore": 1, "OverrideVpcConfig": { "SecurityGroupIds": ["'$SECURITY_GROUP'"], "Subnets": ["'$SUBNET1'"] } }]'
CapacityRequirementstidak dapat diubah setelah Grup Instance dibuat.
Jelaskan Cluster
aws sagemaker describe-cluster --cluster-name $HP_CLUSTER_NAME --region us-west-2
## Sample Response { "ClusterName": "my-cluster", "InstanceGroups": [ { "InstanceGroupName": "ml.c5.2xlarge", "InstanceType": "ml.c5.xlarge", "InstanceCount": 5, "CurrentCount": 3, "CapacityRequirements: { "Spot": {} }, "ExecutionRole": "arn:aws:iam::account:role/SageMakerExecutionRole", "InstanceStorageConfigs": [...], "OverrideVpcConfig": {...} } // Other IGs ] }
DescribeClusterNode
aws sagemaker describe-cluster-node --cluster-name $HP_CLUSTER_NAME --region us-west-2
## Sample Response { "NodeDetails": { "InstanceId": "i-1234567890abcdef1", "InstanceGroupName": "ml.c5.2xlarge", "CapacityType": "Spot", "InstanceStatus": {...} } }
Menggunakan Konsol
Buat dan konfigurasikan SageMaker HyperPod cluster
Untuk memulai, luncurkan dan konfigurasikan kluster SageMaker HyperPod EKS Anda dan verifikasi bahwa mode penyediaan berkelanjutan diaktifkan pada pembuatan klaster. Selesaikan langkah-langkah berikut:
-
Di konsol SageMaker AI, pilih HyperPod cluster di panel navigasi.
-
Pilih Buat HyperPod klaster dan Diatur di Amazon EKS.
-
Untuk opsi Pengaturan, pilih Pengaturan khusus.
-
Untuk Nama, masukkan nama.
-
Untuk pemulihan Instans, pilih Otomatis.
-
Untuk mode penyediaan Instance, pilih Gunakan penyediaan berkelanjutan.
-
CapacityType : Pilih Spot
-
Pilih Kirim.
Cuplikan layar Konsol:
Pengaturan ini membuat konfigurasi yang diperlukan seperti virtual private cloud (VPC), subnet, grup keamanan, dan kluster EKS, dan menginstal operator di cluster. Anda juga dapat menyediakan sumber daya yang ada seperti kluster EKS jika Anda ingin menggunakan cluster yang ada alih-alih membuat yang baru. Pengaturan ini akan memakan waktu sekitar 20 menit.
Menambahkan Grup Instance Spot baru ke cluster yang sama
Untuk menambahkan IG Spot ke cluster HyperPod EKS Anda yang ada. Selesaikan langkah-langkah berikut:
-
Di konsol SageMaker AI, pilih HyperPod cluster di panel navigasi.
-
Pilih HyperPod klaster yang ada dengan Orkestrasi Amazon EKS (Pastikan penyediaan berkelanjutan diaktifkan).
-
Klik Edit.
-
Pada halaman Edit Cluster, klik Buat grup instans.
-
Pilih tipe kapasitas: Instans spot dalam konfigurasi grup instans.
-
Klik Buat grup instans.
-
Klik Kirim.
Cuplikan layar Konsol:
Menggunakan CloudFormation
Resources: TestCluster: Type: AWS::SageMaker::Cluster Properties: ClusterName: "SampleCluster" InstanceGroups: - InstanceGroupName: group1 InstanceType: ml.c5.2xlarge InstanceCount: 1 LifeCycleConfig: SourceS3Uri: "s3://'$BUCKET_NAME'" OnCreate: "on_create_noop.sh" ExecutionRole: "'$EXECUTION_ROLE'", ThreadsPerCore: 1 CapacityRequirements: Spot: {} VpcConfig: Subnets: - "'$SUBNET1'" SecurityGroupIds: - "'$SECURITY_GROUP'" Orchestrator: Eks: ClusterArn: '$EKS_CLUSTER_ARN' NodeProvisioningMode: "Continuous" NodeRecovery: "Automatic"
Silakan lihat https://docs.aws.amazon.com/sagemaker/latest/dg/smcluster- getting-started-eks-console - create-cluster-cfn .html untuk detailnya.
Autoscaling berbasis Karpenter
Buat peran cluster
Langkah 1: Arahkan ke Konsol IAM
-
Pergi ke layanan Konsol Manajemen AWS→ IAM
-
Klik Peran di bilah sisi kiri
-
Klik Buat peran
Langkah 2: Siapkan Kebijakan Kepercayaan
-
Pilih Kebijakan kepercayaan khusus (bukan AWS layanan)
-
Ganti JSON default dengan kebijakan kepercayaan ini:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "hyperpod.sagemaker.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
klik Berikutnya
Langkah 3: Buat Kebijakan Izin Kustom
Karena ini adalah SageMaker izin khusus, Anda harus membuat kebijakan khusus:
-
Klik Buat kebijakan (buka tab baru)
-
Klik tab JSON
-
Masukkan kebijakan ini:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker:BatchAddClusterNodes", "sagemaker:BatchDeleteClusterNodes" ], "Resource": "*" } ] } -
Klik Berikutnya
-
Berikan nama seperti
SageMakerHyperPodRolePolicy -
Klik Buat kebijakan
Langkah 4: Lampirkan Kebijakan ke Peran
-
Kembali ke tab pembuatan peran
-
Segarkan daftar kebijakan
-
Cari dan pilih kebijakan yang baru dibuat
-
Klik Berikutnya
Langkah 5: Nama dan Buat Peran
-
Masukkan nama peran (mis.,
SageMakerHyperPodRole) -
Tambahkan deskripsi jika diinginkan
-
Tinjau kebijakan kepercayaan dan izin
-
Klik Buat peran
Verifikasi
Setelah pembuatan, Anda dapat memverifikasi dengan:
-
Memeriksa tab Trust relationship menunjukkan layanan hyperpod
-
Memeriksa tab Izin menunjukkan kebijakan kustom Anda
-
Peran ARN akan tersedia untuk digunakan dengan HyperPod
Format ARN peran adalah:
arn:aws:iam::YOUR-ACCOUNT-ID:role/SageMakerHyperPodRole
Buat Cluster dengan AutoScaling:
Untuk ketersediaan yang lebih baik, buat IGs beberapa AZs dengan mengonfigurasi Subnet. Anda juga dapat menyertakan onDemand IGs untuk fallback.
aws sagemaker create-cluster \ --cluster-name clusterNameHere \ --orchestrator 'Eks={ClusterArn='$EKS_CLUSTER_ARN'}' \ --node-provisioning-mode "Continuous" \ --cluster-role 'arn:aws:iam::YOUR-ACCOUNT-ID:role/SageMakerHyperPodRole' \ --instance-groups '[{ "InstanceGroupName": "auto-spot-c5-2x-az1", "InstanceType": "ml.c5.2xlarge", "InstanceCount": 0, // For Auto scaling keep instance count as 0 "CapacityRequirements: { "Spot": {} } "LifeCycleConfig": { "SourceS3Uri": "s3://'$BUCKET_NAME'", "OnCreate": "on_create_noop.sh" }, "ExecutionRole": "'$EXECUTION_ROLE'", "ThreadsPerCore": 1, "OverrideVpcConfig": { "SecurityGroupIds": ["'$SECURITY_GROUP'"], "Subnets": ["'$SUBNET1'"] } }]' --vpc-config '{ "SecurityGroupIds": ["'$SECURITY_GROUP'"], "Subnets": ["'$SUBNET'"] }' --auto-scaling ' { "Mode": "Enable", "AutoScalerType": "Karpenter" }'
Update Cluster (Spot+Sesuai Permintaan)
aws sagemaker update-cluster \ --cluster-name "my-cluster" \ --instance-groups '[{ "InstanceGroupName": "auto-spot-c5-x-az3", "InstanceType": "ml.c5.xlarge", "InstanceCount": 2, "CapacityRequirements: { "Spot": {} }, "LifeCycleConfig": { "SourceS3Uri": "s3://'$BUCKET_NAME'", "OnCreate": "on_create_noop.sh" }, "ExecutionRole": "'$EXECUTION_ROLE'", "ThreadsPerCore": 1, "OverrideVpcConfig": { "SecurityGroupIds": ["'$SECURITY_GROUP'"], "Subnets": ["'$SUBNET3'"] } }, { "InstanceGroupName": "auto-spot-c5-2x-az2", "InstanceType": "ml.c5.2xlarge", "InstanceCount": 2, "CapacityRequirements: { "Spot": {} } "LifeCycleConfig": { "SourceS3Uri": "s3://'$BUCKET_NAME'", "OnCreate": "on_create_noop.sh" }, "ExecutionRole": "'$EXECUTION_ROLE'", "ThreadsPerCore": 1, "OverrideVpcConfig": { "SecurityGroupIds": ["'$SECURITY_GROUP'"], "Subnets": ["'$SUBNET2'"] } }, { "InstanceGroupName": "auto-ondemand-c5-2x-az1", "InstanceType": "ml.c5.2xlarge", "InstanceCount": 2, "LifeCycleConfig": { "SourceS3Uri": "s3://'$BUCKET_NAME'", "OnCreate": "on_create_noop.sh" }, "ExecutionRole": "'$EXECUTION_ROLE'", "ThreadsPerCore": 1, "OverrideVpcConfig": { "SecurityGroupIds": ["'$SECURITY_GROUP'"], "Subnets": ["'$SUBNET1'"] } }]'
Buat HyperpodNodeClass
HyperpodNodeClassadalah sumber daya khusus yang dipetakan ke grup instance yang telah dibuat sebelumnya SageMaker HyperPod, menentukan batasan di sekitar jenis instance dan Availability Zone mana yang didukung untuk keputusan penskalaan otomatis Karpenter. Untuk menggunakannyaHyperpodNodeClass, cukup tentukan nama SageMaker HyperPod klaster yang ingin Anda gunakan sebagai sumber sumber daya AWS komputasi yang akan digunakan untuk meningkatkan skala Pod Anda NodePools. InstanceGroups HyperpodNodeClassNama yang Anda gunakan di sini dibawa ke bagian berikutnya NodePool di mana Anda mereferensikannya. Ini memberi tahu dari NodePool mana HyperpodNodeClass untuk menarik sumber daya. Untuk membuatHyperpodNodeClass, selesaikan langkah-langkah berikut:
-
Buat file YAMB (misalnya, nodeclass.yaml) mirip dengan kode berikut. Tambahkan
InstanceGroupnama yang Anda gunakan pada saat pembuatan SageMaker HyperPod cluster. Anda juga dapat menambahkan grup instans baru ke kluster SageMaker HyperPod EKS yang ada. -
Referensikan
HyperPodNodeClassnama dalam NodePool konfigurasi Anda.
Berikut ini adalah contohHyperpodNodeClass:
apiVersion: karpenter.sagemaker.amazonaws.com/v1 kind: HyperpodNodeClass metadata: name: multiazg6 spec: instanceGroups: # name of InstanceGroup in HyperPod cluster. InstanceGroup needs to pre-created # before this step can be completed. # MaxItems: 10 - auto-spot-c5-2x-az1 - auto-spot-c5-2x-az2 - auto-spot-c5-x-az3 - auto-ondemand-c5-2x-az1
Karpenter memprioritaskan grup instans Spot daripada instans On-Demand, menggunakan On-Demand sebagai fallback saat ditentukan dalam konfigurasi. Pemilihan instans diurutkan berdasarkan Skor Penempatan EC2 Spot yang terkait dengan zona ketersediaan masing-masing subnet.
Terapkan konfigurasi ke cluster EKS Anda menggunakankubectl:
kubectl apply -f nodeclass.yaml
HyperPod Cluster harus telah AutoScaling diaktifkan dan AutoScaling status harus berubah InService sebelum HyperpodNodeClass dapat diterapkan. Ini juga menunjukkan kapasitas Grup Instance sebagai Spot atau OnDemand. Untuk informasi lebih lanjut dan pertimbangan utama, lihat Autoscaling di EKS. SageMaker HyperPod
Sebagai contoh
apiVersion: karpenter.sagemaker.amazonaws.com/v1 kind: HyperpodNodeClass metadata: creationTimestamp: "2025-11-30T03:25:04Z" name: multiazc6 uid: ef5609be-15dd-4700-89ea-a3370e023690 spec: instanceGroups: -spot1 status: conditions: // true when all IGs in the spec are present in SageMaker cluster, false otherwise - lastTransitionTime: "2025-11-20T03:25:04Z" message: "" observedGeneration: 3 reason: InstanceGroupReady status: "True" type: InstanceGroupReady // true if subnets of IGs are discoverable, false otherwise - lastTransitionTime: "2025-11-20T03:25:04Z" message: "" observedGeneration: 3 reason: SubnetsReady status: "True" type: SubnetsReady // true when all dependent resources are Ready [InstanceGroup, Subnets] - lastTransitionTime: "2025-11-30T05:47:55Z" message: "" observedGeneration: 3 reason: Ready status: "True" type: Ready instanceGroups: - instanceTypes: - ml.c5.2xlarge name:auto-spot-c5-2x-az2 subnets: - id: subnet-03ecc649db2ff20d2 zone: us-west-2a zoneId: usw2-az2 - capacities: {"Spot": {}}
Buat NodePool
NodePool Set kendala pada node yang dapat dibuat oleh Karpenter dan pod yang dapat berjalan pada node tersebut. NodePool Dapat diatur untuk melakukan berbagai tindakan, seperti:
-
Tentukan label dan taint untuk membatasi pod yang dapat berjalan pada node yang dibuat Karpenter
-
Batasi pembuatan node ke zona tertentu, tipe instance, dan arsitektur komputer, dan sebagainya
Untuk informasi lebih lanjut tentang NodePool, lihat NodePools
Untuk membuat NodePool, selesaikan langkah-langkah berikut:
Buat file YAMB bernama nodepool.yaml dengan NodePool konfigurasi yang Anda inginkan. Kode berikut adalah konfigurasi sampel untuk membuat sampel NodePool. Kami menentukan NodePool untuk menyertakan jenis SageMaker instance ml.g6.xlarge kami, dan kami juga menentukannya untuk satu zona. Lihat NodePools
apiVersion: karpenter.sh/v1 kind: NodePool metadata: name: gpunodepool spec: template: spec: nodeClassRef: group: karpenter.sagemaker.amazonaws.com kind: HyperpodNodeClass name: multiazg6 expireAfter: Never requirements: - key: node.kubernetes.io/instance-type operator: Exists - key: "node.kubernetes.io/instance-type" // Optional otherwise Karpenter will decide based on Job config resource requirements operator: In values: ["ml.c5.2xlarge"] - key: "topology.kubernetes.io/zone" operator: In values: ["us-west-2a"]
Tip: Pada gangguan EC2 Spot, Hyperpod menodai node untuk memicu penggusuran pod. Proses konsolidasi Karpenter menghormati anggaran gangguan pod dan melakukan penggusuran Kubernetes secara normal, tetapi jika Anda menetapkan ConsolidateAfter: 0, maka konsolidasi dapat terjadi segera, memberikan sedikit waktu untuk penggusuran pod yang anggun. Setel ke non zero hingga 2 menit untuk memungkinkan penggusuran pod yang anggun untuk kebutuhan checkpointing apa pun.
Terapkan NodePool ke cluster Anda:
kubectl apply -f nodepool.yaml
Pantau NodePool status untuk memastikan kondisi Siap dalam status disetel ke Benar:
kubectl get nodepool gpunodepool -oyaml
Contoh ini menunjukkan bagaimana a NodePool dapat digunakan untuk menentukan perangkat keras (tipe instance) dan penempatan (Availability Zone) untuk pod.
Luncurkan beban kerja sederhana
Beban kerja berikut menjalankan deployment Kubernetes di mana pod dalam deployment meminta 1 CPU dan memori 256 MB per replika, per pod. Polong belum dipintal.
kubectl apply -f https://raw.githubusercontent.com/aws/karpenter-provider-aws/refs/heads/main/examples/workloads/inflate.yaml
Ketika kita menerapkan ini, kita dapat melihat penyebaran dan peluncuran node tunggal di cluster kita, seperti yang ditunjukkan pada gambar berikut.
Untuk menskalakan komponen ini, gunakan perintah berikut:
kubectl scale deployment inflate --replicas 10
Lihat https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker- hyperpod-eks-autoscaling .html untuk lebih jelasnya.
Mengelola Gangguan Node
Instans Spot dapat direklamasi kapan saja. EC2 memberikan pemberitahuan interupsi 2 menit upaya terbaik dalam banyak kasus, tetapi pemberitahuan ini tidak dijamin. Dalam beberapa situasi, Instans Spot EC2 dapat segera dihentikan tanpa peringatan terlebih dahulu. HyperPod secara otomatis menangani kedua skenario:
-
Dengan pemberitahuan 2 menit: Secara otomatis mencoba kembali penggusuran pod yang anggun dan penggantian kapasitas terkontrol saat kapasitas Spot tersedia.
-
Tanpa pemberitahuan (penghentian segera): Secara otomatis mencoba kembali penggantian node (ketika kapasitas Spot tersedia) tanpa penggusuran yang anggun
Cara kerjanya
Saat EC2 mengirimkan pemberitahuan gangguan Spot, HyperPod secara otomatis:
-
Mendeteksi sinyal interupsi
-
Taints the node: Mencegah pod baru dijadwalkan pada instance yang terputus
-
Mengusir pod dengan anggun: Memberikan waktu untuk menjalankan pod untuk menyelesaikan atau memeriksa pekerjaan mereka (menghormati Kubernetes)
terminationGracePeriodSeconds -
Mengganti kapasitas: Secara otomatis mencoba menyediakan instance pengganti (Spot atau Sesuai Permintaan berdasarkan ketersediaan).
Penggantian kapasitas bekerja dengan menyediakan instance pengganti secara otomatis. Ketika kapasitas tidak segera tersedia, sistem terus memeriksa sampai sumber daya dapat diakses. Dalam kasus grup instance non-autoscaling, HyperPod upaya untuk meningkatkan skala dalam grup instans yang sama sampai kapasitas yang diperlukan tersedia. Untuk grup instance berbasis Karpenter, Karpenter mengimplementasikan mekanisme fallback ke grup instance lain yang dikonfigurasi di kelas Node ketika grup utama tidak dapat mengakomodasi permintaan. Selain itu, Anda dapat mengonfigurasi On-Demand sebagai opsi fallback, memungkinkan Karpenter untuk secara otomatis beralih ke instans On-Demand jika tidak berhasil meningkatkan grup instans Spot.
-
Menjadwalkan ulang beban kerja: Kubernetes secara otomatis menjadwal ulang pod yang diusir pada node yang sehat
Menemukan Penggunaan dan Tagihan Anda
Untuk memeriksa penggunaan dan penagihan untuk Instans Spot di HyperPod Anda dapat menggunakan AWS Cost Explorer Console. Buka Billing and Cost Management > Bill
Untuk menjelajahi penggunaan dan penagihan di Console, buka Billing and Cost Management > Cost Explorer