Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Repérez les instances sur Amazon SageMaker HyperPod
Amazon SageMaker HyperPod prend en charge les instances Spot Amazon EC2, ce qui permet de réaliser des économies importantes pour les charges de travail tolérantes aux pannes et apatrides. AI/ML Les cas d'utilisation incluent les tâches d'inférence et de formation par lots, le réglage des hyperparamètres et les charges de travail expérimentales. Vous pouvez également utiliser les instances Spot pour adapter automatiquement votre capacité de calcul lorsque cette capacité à faible coût est disponible et la réduire à la capacité à la demande lorsque la capacité Spot ajoutée est récupérée.
Par défaut, la fonctionnalité de provisionnement continu des instances Spot on HyperPod work with HyperPod permet de SageMaker HyperPod provisionner automatiquement la capacité restante en arrière-plan tandis que les charges de travail démarrent immédiatement sur les instances disponibles. Lorsque le provisionnement des nœuds échoue en raison de contraintes de capacité ou d'autres problèmes, réessayez SageMaker HyperPod automatiquement en arrière-plan jusqu'à ce que les clusters atteignent l'échelle souhaitée, afin que vos opérations de dimensionnement automatique restent résilientes et non bloquantes. Vous pouvez également utiliser des instances Spot avec une mise à l'échelle automatique basée sur Karpenter.
Capacités et concepts clés à prendre en compte
-
Réalisez jusqu'à 90 % d'économies par rapport aux instances à la demande
-
Utilisez les instances Spot pour les tâches qui peuvent gérer des interruptions et pour lesquelles les délais de début et de fin des tâches sont flexibles
-
Lorsque vous utilisez Karpenter pour le dimensionnement automatique, vous pouvez configurer pour revenir automatiquement HyperPod à On-Demand lorsque la capacité du Spot est interrompue ou indisponible
-
Accédez à un large éventail de types d'instances de processeur, de GPU et d'accélérateur pris en charge par HyperPod
-
La disponibilité des capacités dépend de l'approvisionnement fourni par EC2 et varie en fonction de la région et du type d'instance
-
Vous pouvez effectuer diverses actions, telles que l'identification de la probabilité d'obtenir les instances souhaitées ou d'être interrompu, à l'aide de divers outils tels que le Spot Instance Advisor
fourni par EC2
Prise en main
Conditions préalables
Avant de commencer, assurez-vous de disposer des éléments suivants :
AWS CLI installé et configuré
Configurez vos AWS informations d'identification et votre région :
aws configure
Reportez-vous à la documentation relative aux AWS informations d'identification pour obtenir des instructions détaillées.
Rôle IAM pour l'exécution SageMaker HyperPod
Pour mettre à jour le cluster, vous devez d'abord créer des autorisations AWS Identity and Access Management
Configuration des clusters VPC et EKS
2.1 Création d'un VPC et d'un cluster EKS
Suivez le guide de configuration HyperPod EKS pour :
-
Création d'un VPC avec des sous-réseaux dans plusieurs zones de disponibilité
-
Création d'un cluster EKS
-
Installez les dépendances requises à l'aide des diagrammes Helm
2.2 Définir les variables d'environnement
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"
Quotas de service pour les instances Spot
Vérifiez que vous disposez des quotas requis pour les instances que vous allez créer dans le SageMaker HyperPod cluster. Pour consulter vos quotas, sur la console Service Quotas, sélectionnez les AWS services dans le volet de navigation, puis choisissez SageMaker. Par exemple, la capture d'écran suivante montre le quota disponible pour les instances c5.
Vérifiez la disponibilité des places
Avant de créer des groupes d'instances Spot, vérifiez la disponibilité dans les différentes zones de 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
Conseil : ciblez les zones de disponibilité présentant des scores de placement plus élevés pour une meilleure disponibilité. Vous pouvez également consulter les tarifs de Spot Instance Advisor et d'EC2 Spot pour connaître la disponibilité. Sélectionnez la zone de disponibilité requise avec un meilleur score de disponibilité et configurez le groupe d'instances avec le sous-réseau associé pour lancer l'instance dans cette zone de disponibilité.
Création d'un groupe d'instances (pas de mise à l'échelle automatique)
CreateCluster (Endroit)
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'"] }'
Mettre à jour le 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'"] } }]'
CapacityRequirementsne peut pas être modifié une fois qu'un groupe d'instances est créé.
Décrire le 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": {...} } }
Utilisation de la console
Création et configuration d'un SageMaker HyperPod cluster
Pour commencer, lancez et configurez votre cluster SageMaker HyperPod EKS et vérifiez que le mode de provisionnement continu est activé lors de la création du cluster. Procédez comme suit :
-
Sur la console SageMaker AI, choisissez les HyperPod clusters dans le volet de navigation.
-
Choisissez Create HyperPod cluster et Orchestrated on Amazon EKS.
-
Pour les options de configuration, sélectionnez Configuration personnalisée.
-
Pour Nom, entrez un nom.
-
Pour Restaurer une instance, sélectionnez Automatique.
-
Pour le mode de provisionnement des instances, sélectionnez Utiliser le provisionnement continu.
-
CapacityType : Sélectionnez un endroit
-
Sélectionnez Soumettre.
Capture d'écran de la console :
Cette configuration crée la configuration nécessaire, telle que le cloud privé virtuel (VPC), les sous-réseaux, les groupes de sécurité et le cluster EKS, et installe les opérateurs dans le cluster. Vous pouvez également fournir des ressources existantes telles qu'un cluster EKS si vous souhaitez utiliser un cluster existant au lieu d'en créer un nouveau. Cette configuration prendra environ 20 minutes.
Ajouter un nouveau groupe d'instances Spot au même cluster
Pour ajouter un Spot IG à votre cluster HyperPod EKS existant. Procédez comme suit :
-
Sur la console SageMaker AI, choisissez les HyperPod clusters dans le volet de navigation.
-
Sélectionnez un HyperPod cluster existant avec Amazon EKS Orchestration (assurez-vous que le provisionnement continu est activé).
-
Cliquez sur Modifier.
-
Sur la page Modifier le cluster, cliquez sur Créer un groupe d'instances.
-
Sélectionnez le type de capacité : Repérez l'instance dans la configuration du groupe d'instances.
-
Cliquez sur Créer un groupe d'instances.
-
Cliquez sur Soumettre.
Capture d'écran de la console :
En utilisant 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"
Consultez https://docs.aws.amazon.com/sagemaker/latest/dg/smcluster- getting-started-eks-console - create-cluster-cfn .html pour plus de détails.
Autoscaling basé sur Karpenter
Créer un rôle de cluster
Étape 1 : accédez à la console IAM
-
Accédez au AWS Management Console→ service IAM
-
Cliquez sur Rôles dans la barre latérale gauche
-
Cliquez sur Créer un rôle
Étape 2 : Configuration de la politique de confiance
-
Sélectionnez une politique de confiance personnalisée (au lieu du AWS service)
-
Remplacez le JSON par défaut par cette politique de confiance :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "hyperpod.sagemaker.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
cliquez sur Suivant
Étape 3 : créer une politique d'autorisation personnalisée
Comme il s'agit SageMaker d'autorisations spécifiques, vous devez créer une politique personnalisée :
-
Cliquez sur Créer une politique (ouvre un nouvel onglet)
-
Cliquez sur l'onglet JSON
-
Entrez cette politique :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker:BatchAddClusterNodes", "sagemaker:BatchDeleteClusterNodes" ], "Resource": "*" } ] } -
Cliquez sur Suivant
-
Donnez-lui un nom comme
SageMakerHyperPodRolePolicy -
Cliquez sur Créer une politique
Étape 4 : associer la politique au rôle
-
Retournez à l'onglet de création de votre rôle
-
Actualiser la liste des politiques
-
Recherchez et sélectionnez la politique que vous venez de créer
-
Cliquez sur Suivant
Étape 5 : Nommer et créer un rôle
-
Entrez un nom de rôle (par exemple,
SageMakerHyperPodRole) -
Ajoutez une description si vous le souhaitez
-
Passez en revue la politique de confiance et les autorisations
-
Cliquez sur Créer un rôle
Vérification
Après la création, vous pouvez vérifier en :
-
La vérification de l'onglet Relations de confiance affiche le service Hyperpod
-
La vérification de l'onglet Autorisations indique votre politique personnalisée
-
Le rôle ARN pourra être utilisé avec HyperPod
Le format ARN du rôle sera le suivant :
arn:aws:iam::YOUR-ACCOUNT-ID:role/SageMakerHyperPodRole
Créez un cluster avec AutoScaling :
Pour une meilleure disponibilité, créez-en plusieurs IGs en AZs configurant des sous-réseaux. Vous pouvez également inclure OnDemand comme solution IGs de secours.
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" }'
Mettre à jour le 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'"] } }]'
Créez HyperpodNodeClass
HyperpodNodeClassest une ressource personnalisée qui correspond à des groupes d'instances précréés dans SageMaker HyperPod, définissant les contraintes relatives aux types d'instances et aux zones de disponibilité pris en charge pour les décisions de Karpenter en matière de dimensionnement automatique. Pour l'utiliserHyperpodNodeClass, il vous suffit de spécifier le nom InstanceGroups du SageMaker HyperPod cluster que vous souhaitez utiliser comme source pour les ressources de AWS calcul à utiliser pour augmenter le volume de vos pods dans votre NodePools. Le HyperpodNodeClass nom que vous utilisez ici est reporté NodePool à la section suivante où vous le référencez. Cela indique de NodePool quelle HyperpodNodeClass source puiser les ressources. Pour créer unHyperpodNodeClass, procédez comme suit :
-
Créez un fichier YAML (par exemple, nodeclass.yaml) similaire au code suivant. Ajoutez
InstanceGrouples noms que vous avez utilisés lors de la création du SageMaker HyperPod cluster. Vous pouvez également ajouter de nouveaux groupes d'instances à un cluster SageMaker HyperPod EKS existant. -
Référencez le
HyperPodNodeClassnom dans votre NodePool configuration.
Voici un exemple HyperpodNodeClass :
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 donne la priorité aux groupes d'instances Spot par rapport aux instances à la demande, en utilisant On-Demand comme solution de secours lorsque cela est spécifié dans la configuration. La sélection des instances est triée en fonction des scores de placement ponctuel EC2 associés à la zone de disponibilité de chaque sous-réseau.
Appliquez la configuration à votre cluster EKS en utilisant kubectl :
kubectl apply -f nodeclass.yaml
Le HyperPod cluster doit être AutoScaling activé et AutoScaling son statut doit être InService changé pour HyperpodNodeClass pouvoir être appliqué. Il indique également les capacités des groupes d'instances sous forme Spot ou OnDemand. Pour plus d'informations et des considérations clés, consultez Autoscaling sur SageMaker HyperPod EKS.
Par exemple
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": {}}
Créez NodePool
Le NodePool définit les contraintes sur les nœuds qui peuvent être créés par Karpenter et les pods qui peuvent s'exécuter sur ces nœuds. Il NodePool peut être configuré pour effectuer diverses actions, telles que :
-
Définissez des étiquettes et des nuances pour limiter le nombre de modules pouvant fonctionner sur les nœuds créés par Karpenter
-
Limitez la création de nœuds à certaines zones, à certains types d'instances et à certaines architectures informatiques, etc.
Pour plus d'informations sur NodePool, reportez-vous à NodePools
Pour créer un NodePool, procédez comme suit :
Créez un fichier YAML portant le nom nodepool.yaml de la NodePool configuration souhaitée. Le code suivant est un exemple de configuration permettant de créer un exemple NodePool. Nous spécifions le NodePool pour inclure notre type d' SageMaker instance ml.g6.xlarge, et nous le spécifions également pour une zone. Reportez-vous à 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"]
Conseil : En cas d'interruption d'EC2 Spot, Hyperpod altère le nœud pour déclencher l'expulsion du nœud. Le processus de consolidation de Karpenter respecte les budgets relatifs aux interruptions de service des pods et effectue l'expulsion normale de Kubernetes, mais si vous définissez ConsolidateAfter : 0, la consolidation peut avoir lieu immédiatement, ce qui laisse très peu de temps pour une expulsion progressive des pods. Réglez-le sur une valeur différente de zéro pendant 2 minutes pour permettre l'expulsion gracieuse du pod pour tous les besoins liés aux points de contrôle.
Appliquez le NodePool à votre cluster :
kubectl apply -f nodepool.yaml
Surveillez l' NodePool état pour vous assurer que la condition Prêt est définie sur True :
kubectl get nodepool gpunodepool -oyaml
Cet exemple montre comment a NodePool peut être utilisé pour spécifier le matériel (type d'instance) et l'emplacement (zone de disponibilité) des pods.
Lancez une charge de travail simple
La charge de travail suivante exécute un déploiement Kubernetes dans lequel les pods en cours de déploiement demandent 1 processeur et 256 Mo de mémoire par réplique et par pod. Les gousses n'ont pas encore été filées.
kubectl apply -f https://raw.githubusercontent.com/aws/karpenter-provider-aws/refs/heads/main/examples/workloads/inflate.yaml
Lorsque nous appliquons cela, nous pouvons voir un déploiement et le lancement d'un seul nœud dans notre cluster, comme le montre la capture d'écran suivante.
Pour redimensionner ce composant, utilisez la commande suivante :
kubectl scale deployment inflate --replicas 10
Voir https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker- hyperpod-eks-autoscaling .html pour plus de détails.
Gestion de l'interruption des nœuds
Les instances Spot peuvent être récupérées à tout moment. EC2 fournit un préavis d'interruption de 2 minutes dans la plupart des cas, mais cet avis n'est pas garanti. Dans certains cas, EC2 peut mettre fin aux instances Spot immédiatement sans avertissement préalable. HyperPod gère automatiquement les deux scénarios :
-
Avec un préavis de 2 minutes : Réessaie automatiquement d'expulser gracieusement le pod et de contrôler le remplacement de la capacité lorsque la capacité Spot devient disponible.
-
Sans préavis (résiliation immédiate) : tente à nouveau automatiquement de remplacer le nœud (lorsque la capacité du Spot devient disponible) sans expulsion gracieuse
Fonctionnement
Lorsque EC2 envoie un avis d'interruption Spot, HyperPod automatiquement :
-
Détecte le signal d'interruption
-
Enteinte le nœud : empêche la planification de nouveaux pods sur l'instance interrompue
-
Évacue gracieusement les pods : donne aux pods en cours d'exécution le temps de terminer ou de contrôler leur travail (dans le respect de Kubernetes)
terminationGracePeriodSeconds -
Remplace la capacité : tente automatiquement de provisionner les instances de remplacement (sur place ou à la demande en fonction de la disponibilité).
Le remplacement de capacité fonctionne en provisionnant automatiquement les instances de remplacement. Lorsque la capacité n'est pas immédiatement disponible, le système continue de vérifier jusqu'à ce que les ressources soient accessibles. Dans le cas de groupes d'instances dont le dimensionnement n'est pas automatique, HyperPod tente de procéder à une mise à l'échelle au sein du même groupe d'instances jusqu'à ce que la capacité requise soit disponible. Pour les groupes d'instances basés sur Karpenter, Karpenter implémente un mécanisme de repli sur les autres groupes d'instances configurés dans la classe Node lorsque le groupe principal ne peut pas répondre à la demande. En outre, vous pouvez configurer On-Demand comme option de secours, permettant à Karpenter de passer automatiquement aux instances On-Demand s'il ne parvient pas à faire évoluer les groupes d'instances Spot avec succès.
-
Replanifie les charges de travail : Kubernetes replanifie automatiquement les pods expulsés sur des nœuds sains
Trouver votre consommation et votre facture
Pour vérifier votre utilisation et la facturation des instances Spot sur, HyperPod vous pouvez utiliser la console AWS Cost Explorer. Accédez à Billing and Cost Management > Bill
Pour découvrir l'utilisation et la facturation sur console, rendez-vous sur Billing and Cost Management > Cost Explorer