Aller au contenu

Guide pratique Kubernetes

Choisissez l’autoscaler de nœuds adapté à votre cluster.

Cluster Autoscaler et Karpenter ajoutent des nœuds pour les pods en attente et retirent ceux qui ne servent plus. Ils diffèrent par ce que vous configurez et par le rythme auquel vos nœuds changent. Voici comment chacun fonctionne, où sont ses limites et comment passer de l’un à l’autre.

Mis à jour le 6 novembre 2026

Essai Team de 14 jours sans carte bancaire. Free reste disponible : 1 cluster, 32 cœurs et 2 membres.

Liste des nœuds dans Onicost comparant capacité, ressources demandées et utilisées et coûts estimés, avec des données de démonstration
Vue du produit avec des données de démonstration. Les montants estimés ne sont pas des économies réalisées.

Ce que font les deux outils

La documentation Kubernetes parle de provisionnement et de consolidation. Le provisionnement ajoute des nœuds quand des pods ne trouvent pas de place. La consolidation retire les nœuds sous-utilisés et peut en créer d’autres pour les remplacer. Vous croiserez encore les anciens termes scale-up et scale-down.

Les deux projets sont portés par le SIG Autoscaling. Kubernetes les décrit comme proches à l’usage et renvoie le choix à votre cas. Point commun décisif pour le budget : ils raisonnent sur les requests des pods et ignorent l’usage réel. Une request trop haute garde donc un nœud allumé, quel que soit l’outil. Revoyez vos requests en premier.

Cluster Autoscaler : vous définissez les groupes de nœuds

Cluster Autoscaler ajoute ou retire des nœuds dans des groupes configurés à l’avance. Dans un groupe, toutes les machines ont la même capacité et les mêmes labels. Toutes les 10 secondes par défaut, l’outil cherche des pods sans place et choisit un groupe. L’expander par défaut, least-waste, retient celui qui laisse le moins de CPU inoccupé après l’ajout.

Son atout est sa portée : il s’intègre à de nombreux fournisseurs, y compris de petits acteurs, au sein du projet Kubernetes. Sa limite tient aux groupes eux-mêmes. Chaque nouvelle forme de machine ou chaque mélange avec du Spot demande un groupe de plus à créer et à maintenir.

Pour retirer un nœud, il compare les requests CPU et mémoire à la capacité allouable. Sous 50 % par défaut, et après 10 minutes sans utilité, le nœud peut partir. Plusieurs cas bloquent cette étape :

  • Un PodDisruptionBudget trop restrictif.
  • Un pod qu’aucun contrôleur ne gère.
  • Un pod avec du stockage local, sauf si une annotation liste ses volumes locaux.
  • Un pod annoté cluster-autoscaler.kubernetes.io/safe-to-evict: false.

Karpenter : vous définissez les contraintes

Karpenter part des pods en attente et crée des machines individuelles pour eux. Il se passe de groupes préparés. Vous posez vos contraintes dans un NodePool, par exemple les types d’instance permis ou la capacité Spot, et une NodeClass propre au fournisseur, comme EC2NodeClass sur AWS, porte les réglages cloud. En novembre 2026, sa documentation donnait la version 1.15 comme dernière version.

Son périmètre est plus large : il gère tout le cycle de vie des nœuds. Le champ consolidationPolicy règle son degré d’initiative. WhenEmpty retire seulement les nœuds vides. Balanced agit quand l’économie justifie la perturbation. WhenEmptyOrUnderutilized, la valeur par défaut, examine tout nœud qu’il peut retirer ou remplacer. Les nœuds expirent aussi après 720 heures par défaut, et Karpenter remplace ceux qui s’écartent de leur NodePool.

Cette liberté a ses limites :

  • Moins de fournisseurs l’intègrent. La documentation Kubernetes cite AWS et Azure parmi eux.
  • Les nœuds changent en général plus souvent, donc les pods redémarrent plus souvent. Posez des PodDisruptionBudgets sur vos workloads.
  • Par défaut, le budget de perturbation d’un NodePool plafonne les retraits volontaires à 10 % des nœuds. Il ne limite ni l’expiration ni l’interruption.
  • Sur AWS, la gestion des interruptions demande une file SQS et des règles EventBridge.

Comment choisir

Partez de votre fournisseur, puis regardez comment vos workloads varient. Aucun autoscaler ne garantit une facture plus basse : des budgets stricts, de gros pods ou des contraintes de zone peuvent garder la plupart des nœuds en place. Testez sur un cluster hors production et mesurez le temps d’attente, les redémarrages de pods et le coût estimé avant de trancher.

  • Restez sur Cluster Autoscaler si votre fournisseur n’intègre pas Karpenter, si vos groupes sont peu nombreux et stables, ou si les nœuds doivent changer rarement.
  • Regardez Karpenter si vos pods demandent des machines très variées, si vous misez sur le Spot ou si vos groupes se multiplient.
  • Regardez une offre managée pour n’exploiter ni l’un ni l’autre. EKS Auto Mode repose sur Karpenter, l’exploite pour vous et limite la vie des nœuds à 21 jours.

Passer de Cluster Autoscaler à Karpenter

Le guide de migration de Karpenter vise EKS et suppose des PodDisruptionBudgets en place. Ses étapes aident aussi à préparer un passage ailleurs.

  • Conservez un petit groupe de nœuds statique. Le contrôleur Karpenter y tourne, hors des nœuds qu’il gère.
  • Envisagez d’y épingler les modules critiques comme CoreDNS et metrics-server.
  • Créez un NodePool et une NodeClass, puis passez Cluster Autoscaler à zéro réplica.
  • Réduisez les groupes, quelques instances à la fois sur un gros cluster. Sans PodDisruptionBudget, des workloads peuvent devenir indisponibles.

Ce qu’apporte Onicost : mesurer l’effet

Onicost montre le coût par nœud, workload et namespace, à côté des requests et de l’usage réel. Il regroupe les nœuds par pool, dont les NodePools Karpenter, les node groups EKS et les pools GKE, AKS, Kapsule et OVHcloud. Comparez les semaines avant et après le changement. Ces coûts sont des estimations fondées sur les prix publics et vos réglages.

Les recommandations signalent les requests trop hautes, les pools à réduire et les workloads qui pourraient passer en Spot, avec une économie mensuelle estimée quand elle est chiffrable. Aucune économie n’est garantie, et votre équipe applique les changements. Le scheduler d’Onicost peut arrêter des workloads, mais les nœuds libérés ne s’éteignent que si le cluster a un autoscaler.

Free couvre 1 cluster, 32 cœurs et 2 membres. Les recommandations détaillées viennent avec Team, dès 39 € HT par mois, avec un essai de 14 jours sans carte.

Questions fréquentes

Faut-il retirer Cluster Autoscaler pour utiliser Karpenter ?

Le guide de migration de Karpenter le désactive en le passant à zéro réplica une fois Karpenter en place. Un petit groupe de nœuds statique reste pour le contrôleur et les modules critiques.

Changer d’outil va-t-il baisser ma facture ?

C’est possible, sans garantie. Les deux outils décident à partir des requests : des requests trop hautes continuent de coûter. Mesurez avant et après le changement.

Documentation de référence

Essayer Onicost

Essai Team de 14 jours sans carte bancaire. Free reste disponible : 1 cluster, 32 cœurs et 2 membres.