Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Istanze Spot in Amazon SageMaker HyperPod
Amazon SageMaker HyperPod supporta le istanze Spot di Amazon EC2, consentendo risparmi significativi sui costi per carichi di lavoro con tolleranza ai guasti e stateless. AI/ML I casi d'uso includono l'inferenza in batch e i lavori di addestramento, l'ottimizzazione degli iperparametri e i carichi di lavoro sperimentali. Puoi anche utilizzare le istanze Spot per scalare automaticamente la tua capacità di calcolo quando questa capacità a basso costo è disponibile e ridimensionarla alla capacità quando viene recuperata la On-Demand capacità Spot aggiunta.
Per impostazione predefinita, le istanze Spot HyperPod funzionano con la funzionalità HyperPod di provisioning continuo, che consente di effettuare automaticamente il provisioning della capacità SageMaker HyperPod residua in background mentre i carichi di lavoro vengono avviati immediatamente sulle istanze disponibili. Quando il provisioning dei nodi rileva errori dovuti a vincoli di capacità o altri problemi, riprova SageMaker HyperPod automaticamente in background fino a quando i cluster non raggiungono la scala desiderata, in modo che le operazioni di scalabilità automatica rimangano resilienti e non bloccanti. Puoi anche utilizzare Karpenter-based le istanze Spot con scalabilità automatica.
Capacità e concetti chiave da considerare
-
Ottieni fino al 90% di risparmio sui costi rispetto alle On-Demand istanze
-
Usa le istanze Spot per lavori in grado di gestire le interruzioni e in cui i tempi di inizio e completamento dei lavori sono flessibili
-
Quando utilizzi Karpenter per il ridimensionamento automatico, puoi configurare il fallback automatico On-Demand quando la capacità HyperPod di Spot è interrotta o non è disponibile
-
Accedi a un'ampia gamma di tipi di istanze di CPU, GPU e acceleratore supportati da HyperPod
-
La disponibilità della capacità dipende dalla fornitura di EC2 e varia in base alla regione e al tipo di istanza
-
È possibile eseguire varie azioni, ad esempio identificare la probabilità di ottenere le istanze desiderate o di essere interrotti, utilizzando vari strumenti come Spot Instance Advisor fornito da EC2
Nozioni di base
Prerequisiti
Prima di iniziare, assicurati di disporre dei seguenti elementi:
AWS CLI installato e configurato
Configura AWS le tue credenziali e la tua regione:
aws configure
Per istruzioni dettagliate, consulta la documentazione sulle AWS credenziali.
Ruolo IAM per l'esecuzione SageMaker HyperPod
Per aggiornare il cluster, devi prima creare le autorizzazioni IAM (
Configurazione dei cluster VPC ed EKS
2.1 Creare un cluster VPC ed EKS
Segui la guida alla configurazione di HyperPod EKS per:
-
Crea un VPC con sottoreti in più zone di disponibilità
-
Crea un cluster EKS
-
Installa le dipendenze richieste utilizzando i grafici Helm
2.2 Imposta le variabili di ambiente
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"
Quote di servizio per le istanze Spot
Verifica di disporre delle quote richieste per le istanze che creerai nel cluster. SageMaker HyperPod Per rivedere le quote, nella console Service Quotas, scegli AWS servizi nel riquadro di navigazione, quindi scegli. SageMaker Ad esempio, la schermata seguente mostra la quota disponibile per le istanze c5.
Verifica la disponibilità degli spot
Prima di creare gruppi di istanze Spot, verifica la disponibilità nelle diverse zone di disponibilità:
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
Suggerimento: scegli come target le zone di disponibilità con punteggi di posizionamento più alti per una maggiore disponibilità. Puoi anche controllare i prezzi di Spot Instance Advisor ed EC2 Spot per verificare la disponibilità. Seleziona la zona di disponibilità richiesta con un punteggio di disponibilità migliore e configura il gruppo di istanze con la sottorete associata per avviare l'istanza in quella AZ.
Creazione di un gruppo di istanze (nessuna scalabilità automatica)
CreateCluster (Spot)
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'"] }'
Aggiorna cluster (Spot + On-Demand)
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'"] } }]'
CapacityRequirementsnon può essere modificato una volta creato un gruppo di istanze.
Descrivi 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": {...} } }
Utilizzo della console
Creare e configurare un SageMaker HyperPod cluster
Per iniziare, avvia e configura il tuo cluster SageMaker HyperPod EKS e verifica che la modalità di provisioning continuo sia abilitata alla creazione del cluster. Completa questa procedura:
-
Sulla console SageMaker AI, scegli HyperPod i cluster nel pannello di navigazione.
-
Scegli Crea HyperPod cluster e orchestrato su Amazon EKS.
-
Per le opzioni di configurazione, seleziona Configurazione personalizzata.
-
In Nome, immetti un nome.
-
Per Ripristino dell'istanza, seleziona Automatico.
-
Per la modalità di provisioning dell'istanza, seleziona Usa provisioning continuo.
-
CapacityType : seleziona Spot
-
Seleziona Invia.
Schermata di Console:
Questa configurazione crea la configurazione necessaria, ad esempio cloud privato virtuale (VPC), sottoreti, gruppi di sicurezza e cluster EKS e installa gli operatori nel cluster. Puoi anche fornire risorse esistenti come un cluster EKS se desideri utilizzare un cluster esistente invece di crearne uno nuovo. Questa configurazione richiederà circa 20 minuti.
Aggiungere un nuovo gruppo di istanze Spot allo stesso cluster
Per aggiungere uno Spot IG al cluster HyperPod EKS esistente. Completa questa procedura:
-
Sulla console SageMaker AI, scegli HyperPod i cluster nel pannello di navigazione.
-
Seleziona un HyperPod cluster esistente con Amazon EKS Orchestration (assicurati che il provisioning continuo sia abilitato).
-
Fare clic su Edit (Modifica).
-
Nella pagina Modifica cluster, fai clic su Crea gruppo di istanze.
-
Seleziona il tipo di capacità: istanza Spot nella configurazione del gruppo di istanze.
-
Fai clic su Crea gruppo di istanze.
-
Fare clic su Submit (Invia).
Schermata di Console:
Utilizzo 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"
Per ulteriori dettagli, consulta https://docs.aws.amazon.com/sagemaker/latest/dg/smcluster-getting-started-eks-console-create-cluster-cfn.html la pagina.
Autoscaling basato su Karpenter
Crea un ruolo nel cluster
Passaggio 1: accedi alla console IAM
-
Vai al servizio Console di gestione AWS → IAM
-
Fai clic su Ruoli nella barra laterale sinistra
-
Fai clic su Crea ruolo
Fase 2: Impostazione della politica di fiducia
-
Seleziona Politica di fiducia personalizzata (anziché AWS servizio)
-
Sostituisci il JSON predefinito con questa politica di fiducia:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "hyperpod.sagemaker.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
fai clic su Avanti
Passaggio 3: creazione di una politica di autorizzazioni personalizzata
Poiché si tratta di SageMaker autorizzazioni specifiche, è necessario creare una politica personalizzata:
-
Fai clic su Crea policy (apre una nuova scheda)
-
Fai clic sulla scheda JSON
-
Inserisci questa policy:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker:BatchAddClusterNodes", "sagemaker:BatchDeleteClusterNodes" ], "Resource": "*" } ] } -
Fai clic su Avanti
-
Dategli un nome come
SageMakerHyperPodRolePolicy -
Fai clic su Crea politica
Fase 4: Associare la policy al ruolo
-
Torna alla scheda per la creazione del ruolo
-
Aggiorna l'elenco delle politiche
-
Cerca e seleziona la tua politica appena creata
-
Fai clic su Avanti
Fase 5: Assegna un nome e crea il ruolo
-
Inserisci un nome per il ruolo (ad esempio,
SageMakerHyperPodRole) -
Se lo desideri, aggiungi una descrizione
-
Rivedi la politica di fiducia e le autorizzazioni
-
Fai clic su Crea ruolo
Verifica
Dopo la creazione, puoi verificare tramite:
-
Selezionando la scheda Relazioni di fiducia viene visualizzato il servizio Hyperpod
-
La selezione della scheda Autorizzazioni mostra la tua politica personalizzata
-
Il ruolo ARN sarà disponibile per l'uso con HyperPod
Il formato ARN del ruolo sarà:
arn:aws:iam::YOUR-ACCOUNT-ID:role/SageMakerHyperPodRole
Crea cluster con AutoScaling:
Per una migliore disponibilità, crea IG in più AZ configurando le sottoreti. Puoi anche includere gli IGs OnDemand come riserva.
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" }'
Aggiorna Cluster (Spot +) On-Demand
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'"] } }]'
Crea HyperpodNodeClass
HyperpodNodeClassè una risorsa personalizzata che si associa a gruppi di istanze precreati in SageMaker HyperPod, definendo i vincoli in base ai tipi di istanze e alle zone di disponibilità supportati per le decisioni di ridimensionamento automatico di Karpenter. Per HyperpodNodeClass utilizzarla, è sufficiente specificare i nomi InstanceGroups del SageMaker HyperPod cluster che si desidera utilizzare come fonte per le risorse di AWS calcolo da utilizzare per scalare i pod nel proprio. NodePools Il HyperpodNodeClass nome che usi qui viene riportato NodePool nella sezione successiva a cui fai riferimento. Questo indica da NodePool cosa HyperpodNodeClass attingere le risorse. Per creare unHyperpodNodeClass, completa i seguenti passaggi:
-
Crea un file YAML (ad esempio, nodeclass.yaml) simile al codice seguente. Aggiungi
InstanceGroupi nomi che hai usato al momento della creazione del cluster. SageMaker HyperPod Puoi anche aggiungere nuovi gruppi di istanze a un cluster SageMaker HyperPod EKS esistente. -
Fai riferimento al
HyperPodNodeClassnome nella tua NodePool configurazione.
Di seguito è riportato un esempioHyperpodNodeClass:
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 dà la priorità ai gruppi di istanze Spot rispetto On-Demand alle istanze, utilizzandoli On-Demand come riserva quando specificato nella configurazione. La selezione delle istanze è ordinata in base ai punteggi EC2 Spot Placement associati alla zona di disponibilità di ciascuna sottorete.
Applica la configurazione al tuo cluster EKS utilizzando: kubectl
kubectl apply -f nodeclass.yaml
Il HyperPod cluster deve essere AutoScaling abilitato e lo AutoScaling stato deve cambiare InService prima che HyperpodNodeClass possa essere applicato. Inoltre, mostra le capacità dei gruppi di istanze come Spot o OnDemand. Per ulteriori informazioni e considerazioni chiave, consulta Autoscaling on EKS. SageMaker HyperPod
Ad esempio
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": {}}
Crea NodePool
NodePool Imposta i vincoli sui nodi che possono essere creati da Karpenter e sui pod che possono essere eseguiti su tali nodi. NodePool Possono essere impostati per eseguire varie azioni, come:
-
Definisci etichette e tinte per limitare i pod che possono essere eseguiti sui nodi creati da Karpenter
-
Limita la creazione di nodi a determinate zone, tipi di istanze e architetture di computer e così via
Per ulteriori informazioni su NodePool, fare riferimento a. NodePools
Per creare un, completa i seguenti passaggi: NodePool
Crea un file YAML denominato nodepool.yaml con la configurazione desiderata. NodePool Il codice seguente è una configurazione di esempio per creare un esempio. NodePool Specifichiamo che NodePool includa il nostro tipo di SageMaker istanza ml.g6.xlarge e lo specifichiamo inoltre per una zona. Per ulteriori personalizzazioni, fare riferimento a. 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"]
Suggerimento: in caso di interruzione di EC2 Spot, Hyperpod contamina un nodo per attivare lo sfratto del pod. Il processo di consolidamento di Karpenter rispetta i budget previsti per le interruzioni dei pod ed esegue il normale sfratto di Kubernetes, ma se imposti ConsolidateAfter: 0, il consolidamento può avvenire immediatamente, con pochissimo tempo per l'eliminazione regolare dei pod. Impostalo su un valore diverso da zero per un massimo di 2 minuti per consentire lo sfratto graduale del pod per qualsiasi esigenza di checkpoint.
Applicalo NodePool al tuo cluster:
kubectl apply -f nodepool.yaml
Monitora lo NodePool stato per assicurarti che la condizione Pronto nello stato sia impostata su True:
kubectl get nodepool gpunodepool -oyaml
Questo esempio mostra come utilizzare a per specificare l'hardware (tipo di istanza) e il posizionamento (zona di disponibilità) per i pod. NodePool
Avvia un carico di lavoro semplice
Il seguente carico di lavoro esegue una distribuzione Kubernetes in cui i pod in distribuzione richiedono 1 CPU e 256 MB di memoria per replica, per pod. I pod non sono ancora stati avviati.
kubectl apply -f https://raw.githubusercontent.com/aws/karpenter-provider-aws/refs/heads/main/examples/workloads/inflate.yaml
Quando lo applichiamo, possiamo vedere una distribuzione e l'avvio di un singolo nodo nel nostro cluster, come mostrato nella schermata seguente.
Per ridimensionare questo componente, usa il seguente comando:
kubectl scale deployment inflate --replicas 10
Per ulteriori dettagli, consulta https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-autoscaling.html.
Gestione delle interruzioni dei nodi
Le istanze Spot possono essere recuperate in qualsiasi momento. Nella maggior parte dei casi, EC2 fornisce un preavviso di interruzione di 2 minuti, ma tale avviso non è garantito. In alcune situazioni, EC2 può chiudere le istanze Spot immediatamente senza alcun preavviso. HyperPod gestisce automaticamente entrambi gli scenari:
-
Con 2 minuti di preavviso: ritenta automaticamente lo sgombero graduale dei pod e la sostituzione controllata della capacità quando la capacità Spot diventa disponibile.
-
Senza preavviso (chiusura immediata): ritenta automaticamente la sostituzione del nodo (quando la capacità Spot diventa disponibile) senza sfratto regolare
Come funziona
Quando EC2 invia un avviso di interruzione Spot, automaticamente: HyperPod
-
Rileva il segnale di interruzione
-
Influisce sul nodo: impedisce la pianificazione di nuovi pod sull'istanza interrotta
-
Elimina con garbo i pod: dà ai pod in esecuzione il tempo necessario per completare o verificare il loro lavoro (rispettando Kubernetes)
terminationGracePeriodSeconds -
Sostituisce la capacità: tenta automaticamente di fornire le istanze sostitutive (Spot o in base alla disponibilità). On-Demand
La sostituzione della capacità avviene mediante il provisioning automatico delle istanze sostitutive. Quando la capacità non è immediatamente disponibile, il sistema continua a controllare fino a quando le risorse non diventano accessibili. Nel caso di gruppi di istanze non a scalabilità automatica, HyperPod tenta di aumentare la scalabilità all'interno dello stesso gruppo di istanze fino a quando non diventa disponibile la capacità richiesta. Per i gruppi di Karpenter-based istanze, Karpenter implementa un meccanismo di riserva per altri gruppi di istanze configurati nella classe Node quando il gruppo primario non è in grado di soddisfare la domanda. Inoltre, puoi configurarlo On-Demand come opzione di riserva, consentendo a Karpenter di passare automaticamente alle On-Demand istanze se non riesce a scalare con successo i gruppi di istanze Spot.
-
Riprogramma i carichi di lavoro: Kubernetes ripianifica automaticamente i pod eliminati su nodi integri
Individuazione dell'utilizzo e della fattura
Per verificare l'utilizzo e la fatturazione delle istanze Spot su, HyperPod puoi utilizzare la console AWS Cost Explorer. Vai a Fatturazione e gestione dei costi > Fattura
Per esplorare l'utilizzo e la fatturazione su Console, vai a Fatturazione e gestione dei costi > Cost Explorer