Instancias puntuales en Amazon SageMaker HyperPod - Amazon SageMaker AI

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Instancias puntuales en Amazon SageMaker HyperPod

Amazon SageMaker HyperPod es compatible con Amazon EC2 Spot Instances, lo que permite un importante ahorro de costes para las cargas de trabajo con tolerancia a errores y sin estado AI/ML . Los casos de uso incluyen trabajos de inferencia y formación por lotes, ajuste de hiperparámetros y cargas de trabajo experimentales. También puede usar las instancias puntuales para escalar automáticamente su capacidad de cómputo cuando esta capacidad de bajo costo esté disponible y reducirla a la capacidad bajo demanda cuando se recupere la capacidad puntual adicional.

De forma predeterminada, las instancias puntuales HyperPod funcionan con HyperPod la función de aprovisionamiento continuo, que permite SageMaker HyperPod aprovisionar automáticamente la capacidad restante en segundo plano mientras las cargas de trabajo comienzan inmediatamente en las instancias disponibles. Cuando se produce un error en el aprovisionamiento de nodos debido a limitaciones de capacidad u otros problemas, SageMaker HyperPod se vuelve a intentar automáticamente en segundo plano hasta que los clústeres alcancen la escala deseada, de modo que las operaciones de escalado automático sigan siendo resilientes y sin bloqueos. También puede utilizar instancias puntuales con escalado automático basado en Karpenter.

Capacidades y conceptos clave a tener en cuenta

  • Obtenga hasta un 90% de ahorro de costos en comparación con las instancias bajo demanda

  • Utilice instancias puntuales para trabajos que puedan gestionar interrupciones y en los que los tiempos de inicio y finalización de los trabajos sean flexibles

  • Al utilizar Karpenter para el escalado automático, puede configurarlo para que recurra automáticamente HyperPod a On-Demand cuando la capacidad de Spot se interrumpa o no esté disponible

  • Acceda a una amplia gama de tipos de instancias de CPU, GPU y aceleradores compatibles con HyperPod

  • La disponibilidad de la capacidad depende del suministro EC2 y varía según la región y el tipo de instancia

  • Puede realizar diversas acciones, como identificar la probabilidad de obtener las instancias deseadas o de que se produzcan interrupciones, utilizando diversas herramientas, como Spot Instance Advisor, proporcionado por EC2

Introducción

Requisitos previos

Antes de comenzar, asegúrese de que dispone de lo siguiente:

AWS CLI instalado y configurado

Configure sus AWS credenciales y su región:

aws configure

Consulte la documentación de AWS credenciales para obtener instrucciones detalladas.

Función de IAM para la ejecución SageMaker HyperPod

Para actualizar el clúster, primero debe crear permisos de AWS Identity and Access Management (IAM) para Karpenter. Para obtener instrucciones, consulte Crear un rol de IAM para el escalado automático con Karpenter HyperPod .

Configuración de clústeres de VPC y EKS

2.1 Crear un clúster de VPC y EKS

Siga la guía de configuración de HyperPod EKS para:

  1. Cree una VPC con subredes en varias zonas de disponibilidad

  2. Crear un clúster de EKS

  3. Instale las dependencias necesarias mediante gráficos de Helm

2.2 Establezca las variables de entorno

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"

Cuotas de servicio para las instancias Spot

Compruebe que dispone de las cuotas necesarias para las instancias que va a crear en el SageMaker HyperPod clúster. Para revisar sus cuotas, en la consola de Service Quotas, elija AWS servicios en el panel de navegación y, a continuación, elija SageMaker. Por ejemplo, en la siguiente captura de pantalla se muestra la cuota disponible para las instancias c5.

Imagen que contiene información sobre la región de coste.

Compruebe la disponibilidad de puntos

Antes de crear grupos de instancias puntuales, compruebe la disponibilidad en las diferentes zonas de disponibilidad:

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

Consejo: diríjase a las zonas de disponibilidad con puntuaciones de ubicación más altas para mejorar la disponibilidad. También puede consultar la disponibilidad de Spot Instance Advisor y los precios de EC2 Spot. Seleccione la zona de disponibilidad requerida con una mejor puntuación de disponibilidad y configure el grupo de instancias con la subred asociada para lanzar la instancia en esa zona de disponibilidad.

Creación de un grupo de instancias (sin escalado automático)

CreateCluster (Punto)

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

Actualizar el clúster (puntual o bajo demanda)

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

CapacityRequirementsno se puede modificar una vez que se ha creado un grupo de instancias.

Describa el clúster

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": {...} } }

Uso de la consola

Cree y configure un SageMaker HyperPod clúster

Para empezar, lance y configure el clúster de SageMaker HyperPod EKS y compruebe que el modo de aprovisionamiento continuo esté activado al crear el clúster. Realice los siguientes pasos:

  1. En la consola de SageMaker IA, selecciona HyperPod los clústeres en el panel de navegación.

  2. Elija Crear HyperPod clúster y orquestar en Amazon EKS.

  3. Para ver las opciones de configuración, seleccione Configuración personalizada.

  4. En Nombre, ingrese un nombre.

  5. En Recuperación de instancias, selecciona Automática.

  6. En el modo de aprovisionamiento de instancias, selecciona Usar aprovisionamiento continuo.

  7. CapacityType : Seleccione Spot

  8. Seleccione Enviar.

Captura de pantalla de la consola:

Imagen que contiene el flujo del clúster de creación.

Esta configuración crea la configuración necesaria, como una nube privada virtual (VPC), subredes, grupos de seguridad y un clúster EKS, e instala los operadores en el clúster. También puede proporcionar los recursos existentes, como un clúster de EKS, si desea utilizar un clúster existente en lugar de crear uno nuevo. Esta configuración tardará unos 20 minutos.

Agregar un nuevo grupo de instancias puntuales al mismo clúster

Para añadir un Spot IG a su clúster de HyperPod EKS existente. Realice los siguientes pasos:

  1. En la consola de SageMaker IA, elija HyperPod los clústeres en el panel de navegación.

  2. Seleccione un HyperPod clúster existente con Amazon EKS Orchestration (asegúrese de que el aprovisionamiento continuo esté habilitado).

  3. Haga clic en Edit.

  4. En la página Editar clúster, haz clic en Crear grupo de instancias.

  5. Selecciona el tipo de capacidad: instancia puntual en la configuración del grupo de instancias.

  6. Haz clic en Crear grupo de instancias.

  7. Haga clic en Submit.

Captura de pantalla de la consola:

Imagen que contiene el flujo de creación del grupo de instancias.

Usando 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"

Consulte https://docs.aws.amazon.com/sagemaker/latest/dg/smcluster- getting-started-eks-console - create-cluster-cfn .html para obtener más información.

Escalado automático basado en Karpenter

Crear un rol de clúster

Paso 1: Diríjase a la consola de IAM

  1. Vaya al servicio AWS Management ConsoleIAM

  2. Haz clic en Funciones en la barra lateral izquierda

  3. Haz clic en Crear rol

Paso 2: Configurar la política de confianza

  1. Seleccione una política de confianza personalizada (en lugar de AWS un servicio)

  2. Sustituya el JSON predeterminado por esta política de confianza:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "hyperpod.sagemaker.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }

haga clic en Siguiente

Paso 3: crear una política de permisos personalizada

Como se trata de SageMaker permisos específicos, tendrás que crear una política personalizada:

  1. Haz clic en Crear política (se abre en una pestaña nueva)

  2. Haga clic en la pestaña JSON

  3. Introduce esta política:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker:BatchAddClusterNodes", "sagemaker:BatchDeleteClusterNodes" ], "Resource": "*" } ] }
  4. Haga clic en Siguiente.

  5. Ponle un nombre como SageMakerHyperPodRolePolicy

  6. Haz clic en Crear política

Paso 4: Adjunte la política al rol

  1. Vuelva a la pestaña de creación de roles

  2. Actualice la lista de políticas

  3. Busque y seleccione la política recién creada

  4. Haga clic en Siguiente.

Paso 5: Asigne un nombre y cree el rol

  1. Introduzca el nombre de un rol (por ejemplo,SageMakerHyperPodRole)

  2. Agregue una descripción si lo desea

  3. Revise la política de confianza y los permisos

  4. Haz clic en Crear rol

Verificación

Tras la creación, puede verificarlo de la siguiente manera:

  • Al marcar la pestaña Relaciones de confianza, se muestra el servicio de hiperpód

  • Si marca la pestaña Permisos, se muestra su política personalizada

  • El ARN del rol estará disponible para su uso con HyperPod

El formato ARN del rol será:

arn:aws:iam::YOUR-ACCOUNT-ID:role/SageMakerHyperPodRole

Cree un clúster con AutoScaling:

Para una mejor disponibilidad, cree IGs varias subredes AZs configurando. También puede incluir OnDemand IGs como alternativa.

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

Actualice el clúster (puntual o bajo demanda)

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

Crear HyperpodNodeClass

HyperpodNodeClasses un recurso personalizado que se asigna a grupos de instancias creados previamente y que define las restricciones en SageMaker HyperPod torno a las cuales los tipos de instancias y las zonas de disponibilidad son compatibles con las decisiones de escalado automático de Karpenter. Para usarloHyperpodNodeClass, solo tienes que especificar los nombres InstanceGroups del SageMaker HyperPod clúster que deseas usar como fuente de los recursos de AWS cómputo que se usarán para escalar tus pods en tu clúster. NodePools El HyperpodNodeClass nombre que utilices aquí se transferirá a la sección siguiente NodePool en la que hagas referencia a él. Esto indica de NodePool qué HyperpodNodeClass se deben extraer los recursos. Para crear unaHyperpodNodeClass, complete los siguientes pasos:

  1. Cree un archivo YAML (por ejemplo, nodeclass.yaml) similar al código siguiente. Agrega InstanceGroup los nombres que usaste en el momento de crear el clúster. SageMaker HyperPod También puedes añadir nuevos grupos de instancias a un clúster de SageMaker HyperPod EKS existente.

  2. Haz referencia al HyperPodNodeClass nombre en tu NodePool configuración.

A continuación se muestra un ejemploHyperpodNodeClass:

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 prioriza los grupos de instancias puntuales frente a las instancias bajo demanda, y utiliza On-Demand como alternativa cuando se especifica en la configuración. La selección de instancias se ordena según las puntuaciones de ubicación EC2 puntual asociadas a la zona de disponibilidad de cada subred.

Aplique la configuración a su clúster de EKS mediantekubectl:

kubectl apply -f nodeclass.yaml

El HyperPod clúster debe estar AutoScaling habilitado y el AutoScaling estado debe cambiar a uno InService antes de HyperpodNodeClass poder aplicarlo. También muestra las capacidades de los grupos de instancias en forma puntual o puntual OnDemand. Para obtener más información y consideraciones clave, consulte el ajuste de escala automático en SageMaker HyperPod EKS.

Por ejemplo

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": {}}

Crear NodePool

NodePool Establece restricciones sobre los nodos que Karpenter puede crear y los pods que pueden ejecutarse en esos nodos. Se NodePool puede configurar para realizar varias acciones, como:

  • Defina etiquetas y marcas para limitar los módulos que pueden ejecutarse en los nodos que crea Karpenter

  • Limite la creación de nodos a determinadas zonas, tipos de instancias y arquitecturas de ordenadores, etc.

Para obtener más información al respecto NodePool, consulte. NodePools SageMaker HyperPod El Karpenter gestionado es compatible con un conjunto limitado de requisitos conocidos de Kubernetes y Karpenter, que explicamos en este post.

Para crear un, complete los siguientes pasos: NodePool

Cree un archivo YAML nodepool.yaml con el nombre de la NodePool configuración que desee. El siguiente código es un ejemplo de configuración para crear un ejemplo NodePool. Especificamos que incluya nuestro tipo de SageMaker instancia ml.g6.xlarge y, además, lo especificamos para una zona. NodePool Consulte para obtener más personalizaciones. 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"]

Consejo: Al producirse una interrupción EC2 puntual, Hyperpod contamina el nodo para provocar el desalojo del pod. El proceso de consolidación de Karpenter respeta los presupuestos de interrupción de los módulos y lleva a cabo un desalojo normal de Kubernetes, pero si estableces ConsolidateAfter en 0, la consolidación se puede producir de forma inmediata, lo que deja muy poco tiempo para desalojar el pod sin problemas. Configúrelo en un valor distinto de cero durante un máximo de 2 minutos para poder desalojar el módulo sin problemas si es necesario realizar cualquier control.

Aplícalo a tu clúster NodePool :

kubectl apply -f nodepool.yaml

Supervise el NodePool estado para asegurarse de que la condición Listo del estado esté establecida en True:

kubectl get nodepool gpunodepool -oyaml

En este ejemplo, se muestra cómo se NodePool puede usar a para especificar el hardware (tipo de instancia) y la ubicación (zona de disponibilidad) de los pods.

Lance una carga de trabajo sencilla

La siguiente carga de trabajo ejecuta una implementación de Kubernetes en la que los pods en implementación solicitan 1 CPU y 256 MB de memoria por réplica y por pod. Los pods aún no se han activado.

kubectl apply -f https://raw.githubusercontent.com/aws/karpenter-provider-aws/refs/heads/main/examples/workloads/inflate.yaml

Cuando lo aplicamos, podemos ver una implementación y un lanzamiento de un solo nodo en nuestro clúster, como se muestra en la siguiente captura de pantalla.

Para escalar este componente, usa el siguiente comando:

kubectl scale deployment inflate --replicas 10

Consulte https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker- hyperpod-eks-autoscaling .html para obtener más detalles.

Gestión de la interrupción de nodos

Las instancias puntuales se pueden recuperar en cualquier momento. EC2 en la mayoría de los casos, proporciona un aviso de interrupción de 2 minutos como máximo, pero este aviso no está garantizado. En algunas situaciones, EC2 puede dar por finalizadas las instancias puntuales de forma inmediata sin previo aviso. HyperPod gestiona automáticamente ambos escenarios:

  • Con 2 minutos de antelación: vuelve a intentar automáticamente el desalojo correcto de las cápsulas y la sustitución controlada de la capacidad cuando la capacidad de Spot esté disponible.

  • Sin previo aviso (cierre inmediato): vuelve a intentar sustituir automáticamente el nodo (cuando haya capacidad disponible) sin necesidad de desalojarlo de forma automática

Cómo funciona

Cuando EC2 envía un aviso de interrupción de Spot, automáticamente: HyperPod

  1. Detecta la señal de interrupción

  2. Contamina el nodo: impide que se programen nuevos pods en la instancia interrumpida

  3. Desaloja los pods sin problemas: da tiempo a los pods en ejecución para completar o comprobar su trabajo (respetando Kubernetes) terminationGracePeriodSeconds

  4. Sustituye la capacidad: intenta aprovisionar automáticamente las instancias de reemplazo (puntuales o bajo demanda según la disponibilidad).

    El reemplazo de capacidad funciona mediante el aprovisionamiento automático de las instancias de reemplazo. Cuando la capacidad no está disponible de forma inmediata, el sistema continúa realizando comprobaciones hasta que se pueda acceder a los recursos. En el caso de los grupos de instancias que no se escalan automáticamente, HyperPod intenta ampliarlos dentro del mismo grupo de instancias hasta que esté disponible la capacidad necesaria. En el caso de los grupos de instancias basados en Karpenter, Karpenter implementa un mecanismo de respaldo para otros grupos de instancias configurados en la clase Node cuando el grupo principal no puede satisfacer la demanda. Además, puedes configurar On-Demand como una opción alternativa, lo que permite a Karpenter cambiar automáticamente a las instancias On-Demand si no puede escalar correctamente los grupos de instancias puntuales.

  5. Reprograma las cargas de trabajo: Kubernetes reprograma automáticamente los pods desalojados en los nodos en buen estado

Encuentra tu consumo y tu factura

Para comprobar el uso y la facturación de las instancias puntuales HyperPod , puede utilizar la consola AWS Cost Explorer. Vaya a Billing and Cost Management > Facturación

Imagen que contiene información sobre la región de costes.

Para explorar el uso y la facturación en la consola, vaya a Billing and Cost Management > Cost Explorer

Una imagen que contiene el costo y el uso.