Tous les produits
Search
Centre de documentation

Container Service for Kubernetes:Best practices for spot instance node pools

Dernière mise à jour :Aug 11, 2026

Un pool de nœuds avec instances spot combine des instances spot et des instances à la demande selon un ratio spécifique afin de réduire les coûts. Cette rubrique présente le concept et les cas d'utilisation des pools de nœuds avec instances spot. Elle explique également comment configurer un mix d'instances, définir le ratio entre instances spot et instances à la demande, vérifier l'état d'expiration des instances spot et gérer correctement leur expiration.

Vue d'ensemble

Instances spot utilisent le modèle de facturation à la demande (paiement à l'utilisation), où vous payez les ressources après les avoir utilisées. Le coût est calculé en fonction du prix du marché et de la durée d'utilisation.

Une instance spot est un type particulier d'instance à la demande dont le prix fluctue selon l'offre et la demande. Elles permettent de réaliser des économies significatives, réduisant les coûts des nœuds jusqu'à 90 % par rapport aux instances à la demande classiques. Lors de la création d'une instance spot, vous devez spécifier un mode d'enchère. Si le prix du marché en temps réel pour le type d'instance spécifié est inférieur à votre enchère et que l'inventaire est suffisant, l'instance spot est créée avec succès.

Après sa création, une instance spot fonctionne comme une instance à la demande standard. Vous pouvez l'utiliser avec d'autres produits cloud, tels que les disques cloud et les adresses IP élastiques (EIP). Les instances spot bénéficient d'une période de protection par défaut d'une heure. À l'issue de cette période, le système vérifie le prix du marché en temps réel et l'inventaire toutes les cinq minutes. Si le prix du marché dépasse votre enchère ou si l'inventaire est insuffisant, l'instance spot est libérée.

Cas d'utilisation

  • Pools de nœuds avec instances spot

    Étant donné que les instances spot au sein d'un pool de nœuds peuvent être récupérées sur préavis court, elles conviennent parfaitement aux applications sans état et tolérantes aux pannes. Cela inclut le traitement par lots, les charges de travail d'apprentissage automatique, les processus ETL Big Data (comme Apache Spark), les applications de traitement de files d'attente et les applications API sans état.

    Pour les applications qui ne tolèrent pas de telles interruptions, privilégiez des pools de nœuds avec des instances à la demande ou des abonnements. Ces charges de travail comprennent :

    • Les outils de gestion de cluster, tels que les outils de surveillance et d'exploitation.

    • Les déploiements ou applications nécessitant des charges de travail avec état, comme les bases de données.

  • Pools de nœuds avec instances spot et mise à l'échelle automatique

    Si votre charge de travail convient à un pool de nœuds avec instances spot et présente des périodes de pointe et de creux bien distinctes, envisagez d'utiliser un pool de nœuds avec instances spot doté de la mise à l'échelle automatique.

    Lorsque la mise à l'échelle automatique est activée, l'autoscaler de cluster vérifie si le pool de nœuds avec instances spot doit effectuer un scale out pour déployer des Pods et réalise automatiquement un scale in lorsque les nœuds répondent aux critères de réduction. Un pool de nœuds avec instances spot et mise à l'échelle automatique effectue un scale out plus rapidement et libère les ressources inactives plus promptement. La capacité à ajouter rapidement des instances permet de compenser la récupération passive des instances spot et d'améliorer les économies de coûts en libérant les ressources inutilisées.

Sélectionner et configurer un mix d'instances spot

Il n'existe pas de solution unique pour sélectionner les types d'instances. Choisissez une configuration qui équilibre au mieux l'inventaire, le coût et les performances selon vos besoins métier. Alibaba Cloud ECS propose une large gamme de types d'instances. La première étape pour utiliser efficacement un pool de nœuds avec instances spot consiste à sélectionner un mix d'instances qui minimise l'impact potentiel sur l'activité, en particulier dans un contexte d'enchères.

Vous pouvez sélectionner et configurer votre mix d'instances spot à l'aide des méthodes suivantes.

Utiliser les recommandations de la console

La console ACK fournit des conseils de sélection d'instances. Lorsque vous créez ou modifiez un pool de nœuds, la console suggère des types d'instances actuellement disponibles dans la région sélectionnée. Vous pouvez affiner ces types d'instances en fonction de vos exigences en matière de ressources. Après avoir sélectionné les types d'instances, la console calcule la force d'élasticité et la fourchette de prix pour les instances. Utilisez la recommandation de force d'élasticité pour ajouter davantage de types d'instances et définir un prix maximal d'instance.

Pour plus d'informations sur la création ou la modification d'un pool de nœuds, consultez Créer et gérer des pools de nœuds .

Dans la section Selected Specifications, vous pouvez consulter les types d'instances sélectionnés et ajuster leur priorité d'achat à l'aide des boutons Move Up et Move Down. Le bas de la page affiche le niveau de force d'élasticité du groupe de mise à l'échelle (par exemple, « Medium ») et propose des suggestions d'amélioration, telles que la sélection de plusieurs vSwitch dans différentes zones et le choix de plusieurs types d'instances disposant d'un inventaire suffisant.

Utiliser l'outil CLI spot-instance-advisor

ACK met à disposition un outil en ligne de commande open source, spot-instance-advisor, permettant de récupérer les fluctuations historiques des prix et les informations tarifaires actuelles pour les instances spot. L'outil spot-instance-advisor utilise une API pour obtenir les types d'instances et les courbes de prix historiques d'une région. Il effectue ensuite une analyse statistique pour calculer et classer les types d'instances présentant le coût le plus faible par cœur-heure, et calcule une valeur d'entropie des prix basée sur la dispersion des prix. Une valeur d'entropie plus élevée indique des fluctuations de prix plus fréquentes. Nous vous recommandons de sélectionner des types d'instances avec une faible entropie.

Remarque

Pour télécharger spot-instance-advisor, consultez spot-instance-advisor.

L'outil spot-instance-advisor prend en charge les paramètres de filtrage suivants.

Usage of ./spot-instance-advisor:
  -accessKeyId string
        Your accessKeyId of cloud account
  -accessKeySecret string
        Your accessKeySecret of cloud account
  -cutoff int
        Discount of the spot instance prices (default 2)
  -family string
        The spot instance family you want (e.g. ecs.n1,ecs.n2)
  -limit int
        Limit of the spot instances (default 20)
  -maxcpu int
        Max cores of spot instances  (default 32)
  -maxmem int
        Max memory of spot instances (default 64)
  -mincpu int
        Min cores of spot instances (default 1)
  -minmem int
        Min memory of spot instances (default 2)
  -region string
        The region of spot instances (default "cn-hangzhou")
  -resolution int
        The window of price history analysis (default 7)

Exécutez la commande suivante pour obtenir la configuration de type d'instance la plus adaptée à la région actuelle.

Les paramètres accessKeyId , accessKeySecret et region sont obligatoires. Spécifiez les valeurs selon vos besoins métier.
./spot-instance-advisor --accessKeyId=<id> --accessKeySecret=<secret> --region=<cn-zhangjiakou>

Exemple de sortie

Initialize cache ready with 619 kinds of instanceTypes
Filter 93 of 98 kinds of instanceTypes.
Fetch 93 kinds of InstanceTypes prices successfully.
Successfully compare 199 kinds of instanceTypes
      InstanceTypeId               ZoneId     Price(Core)        Discount           ratio
        ecs.c6.large     cn-zhangjiakou-c          0.0135             1.0             0.0
        ecs.c6.large     cn-zhangjiakou-a          0.0135             1.0             0.0
      ecs.c6.2xlarge     cn-zhangjiakou-a          0.0136             1.0             0.0
      ecs.c6.2xlarge     cn-zhangjiakou-c          0.0136             1.0             0.0
      ecs.c6.3xlarge     cn-zhangjiakou-a          0.0137             1.0             0.0
      ecs.c6.3xlarge     cn-zhangjiakou-c          0.0137             1.0             0.0
       ecs.c6.xlarge     cn-zhangjiakou-c          0.0138             1.0             0.0
       ecs.c6.xlarge     cn-zhangjiakou-a          0.0138             1.0             0.0
     ecs.hfc6.xlarge     cn-zhangjiakou-a          0.0158             1.0             0.0
      ecs.hfc6.large     cn-zhangjiakou-a          0.0160             1.0             0.0
      ecs.hfc6.large     cn-zhangjiakou-c          0.0160             1.0             0.0
      ecs.g6.3xlarge     cn-zhangjiakou-a          0.0175             1.0             0.0
      ecs.g6.3xlarge     cn-zhangjiakou-c          0.0175             1.0             0.0
        ecs.g6.large     cn-zhangjiakou-a          0.0175             1.0             0.0
       ecs.g6.xlarge     cn-zhangjiakou-a          0.0175             1.0             0.0
      ecs.g6.2xlarge     cn-zhangjiakou-a          0.0175             1.0             1.0
      ecs.g6.2xlarge     cn-zhangjiakou-c          0.0175             1.0             3.0
        ecs.g6.large     cn-zhangjiakou-c          0.0175             1.0             30.8
       ecs.g6.xlarge     cn-zhangjiakou-c          0.0175             1.0             9.7
      ecs.hfg6.large     cn-zhangjiakou-c          0.0195             1.0             0.2

La sortie indique que les types d'instances les mieux classés présentent une tarification relativement stable et de faibles valeurs pour le coefficient de chaos (colonne ratio). Bien que certains types d'instances moins bien classés puissent également bénéficier d'une réduction de 90 %, leurs coefficients de chaos (colonne ratio) sont plus élevés. Lors de la configuration des types d'instances, privilégiez les combinaisons affichant des prix plus bas et des coefficients de chaos plus faibles.

Configurer le ratio entre instances spot et instances à la demande

En configurant le ratio entre instances spot et instances à la demande dans un pool de nœuds, vous garantissez une base stable d'instances à la demande tout en réduisant les coûts grâce à une proportion planifiée d'instances spot.

Important
  • Votre cluster doit être en version 1.9 ou ultérieure. Pour mettre à niveau un cluster, consultez Mettre à niveau manuellement un cluster.

  • Assurez-vous que votre cluster peut ajouter un nombre suffisant de nœuds. Pour obtenir des informations sur les quotas de nœuds et savoir comment demander une augmentation de quota, consultez Quotas et limites.

  • Lorsque vous ajoutez des nœuds existants, assurez-vous que les instances ECS de votre Virtual Private Cloud (VPC) disposent d'une adresse IP élastique (EIP) associée, ou que le VPC correspondant possède une passerelle NAT configurée. Cela garantit que les nœuds peuvent accéder à Internet public et évite les échecs lors de l'ajout de nœuds.

  1. Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.

  2. Sur la page Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, cliquez sur Nodes > Node Pools.

  3. Sur la page Node Pools, cliquez sur Create Node Pool et configurez les paramètres.

    Le tableau suivant décrit uniquement les éléments de configuration clés. Pour des instructions détaillées, consultez Créer et gérer des pools de nœuds.

    Paramètre

    Description

    vSwitch

    Nous vous recommandons de sélectionner des vSwitch dans différentes zones pour améliorer la haute disponibilité du cluster.

    Billing Method

    Sélectionnez Spot Instance.

    Développez Advanced Options et configurez les paramètres suivants.

    Définissez scaling policy sur cost optimization policy, définissez Pay-As-You-Go Instance Percentage (%) sur 20, cochez la case use pay-as-you-go instances to supplement spot capacity (cela lance des instances à la demande pour atteindre le nombre requis si les instances spot ne sont pas disponibles en raison du prix ou de l'inventaire) et cochez la case enable supplemental spot instance (cela draine et remplace proactivement une instance 5 minutes avant sa récupération ; la désactivation de cette option peut provoquer des interruptions de service).

    Scaling Policy

    • Priority-based Policy : Met à l'échelle les nœuds en fonction de la priorité du vSwitch que vous avez configurée (la priorité diminue de haut en bas). Si une instance ne peut pas être créée dans une zone de priorité supérieure, le système utilise automatiquement le vSwitch suivant dans la liste de priorité.

    • Cost Optimization : Effectue un scale out des instances ayant le prix unitaire vCPU le plus bas en premier.

      Si le pool de nœuds utilise Preemptible Instance, celles-ci sont prioritaires. Vous pouvez également configurer un Pay-as-you-go Instance Percentage (%). Si des instances spot d'un type spécifique ne peuvent pas être créées en raison d'un inventaire insuffisant, le système tente automatiquement de créer des instances à la demande en complément.

    • Distribution Balancing : Répartit les instances ECS de manière uniforme sur plusieurs zones. Cette politique s'applique uniquement aux déploiements multizones. Si la répartition devient déséquilibrée en raison de problèmes tels qu'un inventaire insuffisant, vous pouvez relancer l'opération d'équilibrage.

    Use Pay-as-you-go Instances When Spot Instances Are Insufficient

    Si cette option est activée et qu'un nombre insuffisant d'instances spot peut être créé en raison de contraintes de prix ou d'inventaire, ACK tente automatiquement de créer des instances à la demande en complément.

    Enable Supplemental Spot Instance

    Lorsqu'elle est activée, dès réception d'un message système indiquant qu'une instance spot est sur le point d'être récupérée (5 minutes avant la récupération), ACK tentera de mettre à l'échelle une nouvelle instance en compensation.

    • Compensation réussie : ACK draine l'ancien nœud et le retire du cluster.

    • Échec de la compensation : ACK ne draine pas l'ancien nœud. L'instance sera toujours récupérée et libérée après 5 minutes. Lorsque l'inventaire sera rétabli ou que les conditions de prix seront satisfaites, ACK achètera automatiquement une instance pour maintenir le nombre souhaité de nœuds. Pour plus d'informations, consultez Bonnes pratiques pour les pools de nœuds avec instances spot.

    La libération proactive des instances spot peut perturber l'activité. Pour améliorer le taux de réussite de la compensation, nous vous recommandons également d'activer Use Pay-as-you-go Instances When Spot Instances Are Insufficient.

    Ressources cloud et facturation : imageInstance ECS

Une fois la configuration terminée, accédez à la liste des pools de nœuds, cliquez sur Details dans la colonne Actions, puis sur l'onglet Basic Information. Dans la section Node Configurations, vous pouvez consulter le pourcentage d'instances à la demande.

Vérifier l'état d'expiration des instances spot

Pour éviter les sorties inattendues de nœuds dues à l'expiration des instances spot, ACK utilise le composant ack-node-problem-detector (NPD) afin d'obtenir des informations sur les libérations d'instances imminentes et de vous en informer.

Pour installer le composant NPD, consultez Étape 1 : Installer le composant ack-node-problem-detector .

Dans un cluster ACK, les instances ECS servent de nœuds qui soutiennent le cluster et ses services en cours d'exécution. Selon leur politique de création, certaines instances, telles que les instances spot et les instances par abonnement, font l'objet d'une libération automatique à leur expiration. Si des actions préventives comme l'éviction de Pod, le drainage de nœud ou le remplacement de nœud ne sont pas entreprises avant la libération automatique d'une instance, les services du cluster peuvent être affectés. Une sortie inattendue d'un nœud maître peut entraîner une panne au niveau du cluster. Pour prévenir les problèmes liés à l'expiration des instances spot, vous pouvez utiliser l'état InstanceExpired du composant NPD pour connaître une libération imminente.

  1. Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.

  2. Sur la page Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, cliquez sur Nodes > Nodes.

  3. Sur la page Nodes, cliquez sur le nom du nœud cible ou, dans la colonne Actions du nœud cible, choisissez More > Details.

  4. Sur la page des détails du nœud, vérifiez l'état de la condition InstanceExpired.

    Dans la section Status, vérifiez l'état de la condition InstanceExpired.

    Description des états InstanceExpired :

    État InstanceExpired

    Description

    True

    Si l'état de InstanceExpired est True et que le Content est InstanceToBeTerminated, l'instance spot est sur le point d'expirer et sera libérée.

    False

    Si l'état de InstanceExpired est False et que le Content est InstanceNotToBeTerminated, l'instance spot n'est pas en cours d'expiration et peut continuer à être utilisée.

    Unknown

    Un état Unknown indique une erreur de plug-in. Veuillez soumettre un ticket pour résoudre le problème.

    Si l'état InstanceExpired est True, vous pouvez consulter les événements liés à l'expiration de l'instance dans la section Events.

Si l'état InstanceExpired est True, l'instance spot est sur le point d'expirer et d'être libérée. Si vous devez continuer à utiliser les services sur ce nœud, planifiez vos applications sur d'autres nœuds. Pour plus d'informations, consultez Planifier des applications sur un nœud spécifique.

Gérer correctement l'expiration des instances spot

La gestion correcte de l'expiration des instances spot implique principalement la surveillance et les notifications, les compléments de nœuds proactifs et les politiques, ainsi que les comportements de gestion personnalisés.

Surveillance et notifications

Pour vous informer le plus tôt possible de la libération d'une instance spot, les clusters ACK utilisent le composant NPD pour surveiller les messages de pré-libération des instances spot.

  • Lorsqu'aucun message de pré-libération n'est détecté pour l'instance spot, la valeur InstanceExpired dans l'état du nœud est False. Sur la page des détails du nœud, cliquez sur l'onglet Status et vérifiez la condition InstanceExpired dans la liste des conditions. Lorsque son état est False et que le message est InstanceNotToBeTerminated, cela indique que l'instance spot n'est pas en cours de récupération.

  • Lorsque la valeur InstanceExpired d'une instance spot est True, cela signifie que l'instance spot est sur le point d'expirer et sera libérée. ACK vous informe de la libération imminente via un événement Kubernetes. Lorsqu'un message de pré-libération est détecté, un événement InstanceToBeTerminated apparaît dans le panneau Events du cluster, indiquant que l'instance est sur le point d'être libérée.

Enable Supplemental Spot Instance

L'expiration et la libération des instances spot constituent un facteur clé affectant la stabilité des charges de travail sur un nœud. ACK propose diverses méthodes pour répondre rapidement aux événements de libération d'instances spot, allant de la configuration et de la mise à l'échelle automatique à la surveillance et aux notifications. Toutefois, ces méthodes agissent généralement après la récupération de l'instance spot. Durant la période entre la récupération et le provisionnement d'une nouvelle instance, les ressources disponibles du cluster sont réduites. Pour minimiser ou éliminer cet impact, ACK utilise la fonctionnalité de complément de nœud pour déclencher le lancement d'une nouvelle instance avant que l'instance expirante ne soit récupérée.

Après avoir activé la fonctionnalité de complément d'instance spot, ACK surveille automatiquement si une instance de nœud est sur le point d'être libérée. Lorsqu'ACK détecte une libération imminente, il déclenche automatiquement une activité de mise à l'échelle pour lancer un nouveau nœud. Cette nouvelle instance, créée pour remplacer celle sur le point d'être libérée, est appelée instance complémentaire. Une fois que l'instance complémentaire fonctionne correctement, elle déclenche le scale-in et la libération de l'instance spot expirante. La stratégie de libération inclut des procédures d'arrêt correct telles que le balisage du nœud (le rendant non planifiable), le drainage du nœud et la suppression du nœud du cluster. Ce processus permet de garantir que les charges de travail sur l'instance spot expirante sont migrées en douceur vers d'autres nœuds du cluster, minimisant ainsi l'impact de l'expiration de l'instance sur votre activité.

Important
  • Si le complément d'instance échoue en raison de raisons telles qu'un inventaire insuffisant, ACK ne draine pas l'ancien nœud. La préemption de l'instance spot peut provoquer des interruptions de service. Après un échec, lorsque l'inventaire est rétabli ou que les conditions de prix sont satisfaites, ACK achète automatiquement une instance pour garantir le nombre souhaité de nœuds.

    Pour améliorer le taux de réussite du complément, nous vous recommandons d'activer également Use Pay-as-you-go Instances When Spot Instances Are Insufficient.

  • Le résultat du complément d'instance n'affecte pas la récupération de l'instance spot expirante. Que vous Enable Supplemental Spot Instance ou non, l'instance expirante est toujours récupérée 5 minutes après l'avis de pré-récupération.

抢占式实例节点预补偿.png

Ajouter une logique de gestion personnalisée

Dans de nombreux scénarios réels, la mise hors service d'un nœud nécessite plus d'étapes qu'un arrêt correct standard, comme la suppression des informations du nœud d'un centre DNS enregistré. Pour répondre à ces besoins, surveillez l'état InstanceExpired du nœud ou écoutez l'événement InstanceToBeTerminated. Lorsque vous recevez une notification indiquant que l'instance du nœud expire ou va être libérée, vous pouvez traiter le nœud comme étant en attente de mise hors service, puis exécuter votre logique personnalisée. Pour des instructions spécifiques sur la surveillance de l'état d'expiration des instances spot, consultez Vérifier l'état d'expiration des instances spot.