Tous les produits
Search
Centre de documentation

Container Service for Kubernetes:FAQ sur la mise à l'échelle instantanée des nœuds

Dernière mise à jour :Aug 29, 2026

Cette rubrique répond aux questions courantes concernant la fonctionnalité de mise à l'échelle instantanée des nœuds et propose des solutions aux problèmes connexes.

Sommaire

Catégorie

Sous-catégorie

Lien

Mise à l'échelle instantanée des nœuds : comportement

Limitations connues

Comportement lors de la montée en puissance (scale-out)

Comportement lors de la réduction (scale-in)

Personnalisation du comportement de mise à l'échelle

Contrôle de la mise à l'échelle via les pods

Comment contrôler la réduction des nœuds à l'aide de pods ?

Contrôle de la mise à l'échelle via les nœuds

Module complémentaire de mise à l'échelle instantanée des nœuds

Limitations connues

Limitations fonctionnelles

  • La mise à l'échelle instantanée des nœuds ne prend pas en charge le mode swift.

  • Un pool de nœuds peut contenir jusqu'à 180 nœuds par lot de montée en puissance.

  • Il est impossible de désactiver la réduction (scale-in) pour un cluster spécifique.

    Remarque

    Pour désactiver la réduction d'un nœud spécifique, consultez la section Comment empêcher la réduction d'un nœud par la mise à l'échelle instantanée des nœuds ?

  • La solution de mise à l'échelle instantanée des nœuds ne vérifie pas l'inventaire des instances préemptibles. Si la Billing Method du pool de nœuds est définie sur des instances préemptibles et si l'option Use Pay-as-you-go Instances When Spot Instances Are Insufficient est activée, des instances à la demande peuvent être ajoutées même si suffisamment d'instances préemptibles sont disponibles.

Limitations de la prédiction des ressources

Les ressources disponibles sur un nœud nouvellement provisionné peuvent ne pas correspondre exactement aux spécifications du type d'instance, car le système ECS sous-jacent consomme certaines ressources. Pour plus d'informations, consultez la section Pourquoi la taille de la mémoire d'une instance achetée diffère-t-elle de la taille de mémoire définie dans son type d'instance ? Par conséquent, les estimations de ressources fournies par le module complémentaire de mise à l'échelle instantanée des nœuds peuvent être supérieures aux ressources réellement disponibles sur un nœud, ce qui rend la prédiction précise difficile. Lors de la configuration des demandes de ressources des pods, tenez compte des points suivants.

  • Lorsque vous configurez les demandes de ressources des pods, le total des ressources demandées, y compris le CPU, la mémoire et le disque, doit être inférieur à la capacité du type d'instance. Nous recommandons que le total des demandes ne dépasse pas 70 % des ressources du nœud.

  • Lorsque le module complémentaire de mise à l'échelle instantanée des nœuds évalue si un nœud dispose de ressources suffisantes, il ne prend en compte que les pods Kubernetes, tels que les pods en attente et les pods DaemonSet. Si le nœud exécute des Static Pods qui ne font pas partie d'un DaemonSet, vous devez réserver manuellement des ressources pour ces pods.

  • Si un pod demande une grande quantité de ressources, par exemple plus de 70 % des ressources d'un nœud, effectuez des tests préalables pour confirmer que le pod peut être planifié sur un nœud du même type d'instance.

Types de ressources simulables limités

Le module complémentaire de mise à l'échelle instantanée des nœuds ne prend en charge qu'un nombre limité de types de ressources pour les simulations de mise à l'échelle. Pour plus d'informations, consultez la section Quels types de ressources la mise à l'échelle instantanée des nœuds utilise-t-elle pour les simulations de mise à l'échelle ?.

Les contraintes de stockage sont invisibles pour l'autoscaler

L'autoscaler n'a pas connaissance des contraintes de stockage au niveau des pods, telles que :

  • La nécessité de s'exécuter dans une zone de disponibilité spécifique pour accéder à un volume persistant (PV).

  • L'exigence d'un nœud prenant en charge un type de disque spécifique (tel que ESSD).

Solution : Configurez un pool de nœuds dédié pour les applications ayant des dépendances de stockage avant d'activer Auto Scaling. Prédéfinissez la zone de disponibilité, le type d'instance et le type de disque dans la configuration du pool de nœuds afin de garantir que les nœuds nouvellement provisionnés répondent aux exigences de stockage du pod.

Assurez-vous également que vos pods ne référencent pas de PVC dans un état Terminating. Un pod qui ne peut pas être planifié parce que son PVC est en cours de terminaison échouera continuellement, ce qui peut amener le cluster-autoscaler à prendre des décisions incorrectes de montée ou de réduction en puissance (par exemple, en expulsant le pod).

Comportement lors de la montée en puissance (scale-out)

Quels types de ressources la mise à l'échelle instantanée des nœuds peut-elle évaluer ?

Les simulations de mise à l'échelle utilisent les types de ressources suivants :

cpu
memory
ephemeral-storage 
aliyun.com/gpu-mem # Only shared GPUs are supported.
nvidia.com/gpu

La mise à l'échelle instantanée des nœuds prend-elle en charge l'ajout de types d'instances appropriés dans un pool de nœuds en fonction des demandes de ressources des pods ?

Oui. L'autoscaler sélectionne intelligemment le type d'instance le plus efficace en termes de ressources capable de satisfaire les exigences du pod. Prenons l'exemple d'un pool de nœuds configuré avec deux types d'instances : un type plus petit de 4 cœurs et 8 Go de RAM, et un type plus grand de 12 cœurs et 48 Go de RAM. Si un pod demande 2 cœurs, la mise à l'échelle instantanée des nœuds privilégie la création d'un nœud de 4 cœurs et 8 Go de RAM pour le pod. Si vous remplacez ultérieurement le type 4 cœurs/8 Go par un type 8 cœurs/16 Go, la mise à l'échelle instantanée des nœuds s'adapte automatiquement et place les nouveaux pods ayant des demandes similaires sur des nœuds de 8 cœurs et 16 Go de RAM.

Comment la mise à l'échelle instantanée des nœuds sélectionne-t-elle par défaut un type d'instance lorsqu'un pool de nœuds contient plusieurs types d'instances ?

Sur la base des types d'instances configurés pour le pool de nœuds, la mise à l'échelle instantanée des nœuds exclut périodiquement les types d'instances dont l'inventaire est insuffisant, trie ensuite les types d'instances restants par nombre de cœurs CPU, et les examine un par un pour déterminer s'ils peuvent satisfaire les demandes de ressources des pods non planifiables. Une fois qu'un type d'instance approprié est trouvé, la mise à l'échelle instantanée des nœuds sélectionne ce type d'instance et cesse de vérifier les autres.

Comment suivre les changements en temps réel de l'inventaire des types d'instances dans un pool de nœuds lors de l'utilisation de la mise à l'échelle instantanée des nœuds ?

La mise à l'échelle instantanée des nœuds fournit des métriques de santé mises à jour périodiquement pour refléter les changements d'inventaire des types d'instances dans un pool de nœuds à mise à l'échelle automatique. Lorsque le statut d'inventaire d'un type d'instance change, la mise à l'échelle instantanée des nœuds envoie un événement Kubernetes nommé InstanceInventoryStatusChanged. Abonnez-vous à ces événements pour surveiller l'état de santé de l'inventaire de votre pool de nœuds, évaluer si l'inventaire actuel est suffisant et ajuster votre configuration de type d'instance à l'avance. Pour plus d'informations, consultez la section Afficher l'état de santé de la mise à l'échelle instantanée des nœuds.

Prévention des échecs de montée en puissance

Nous vous recommandons d'utiliser les configurations suivantes pour élargir la gamme des types d'instances disponibles :

  • Configurez plusieurs types d'instances pour le pool de nœuds ou utilisez une configuration générique.

  • Configurez plusieurs zones pour le pool de nœuds.

Pourquoi la mise à l'échelle instantanée des nœuds échoue-t-elle à lancer un nœud ?

Vérifiez les problèmes suivants :

  • L'inventaire des types d'instances configurés pour le pool de nœuds est insuffisant.

  • Les types d'instances configurés pour le pool de nœuds ne peuvent pas satisfaire les demandes de ressources du pod. Les spécifications annoncées pour un type d'instance ECS diffèrent des ressources réellement disponibles après le provisionnement. Les réservations de ressources suivantes doivent être prises en compte au moment de l'exécution :

  • Vous n'avez pas effectué l'autorisation comme décrit dans la section Activer l'élasticité instantanée pour les nœuds.

  • Le pool de nœuds échoue à ajouter de nouvelles instances en raison de problèmes d'infrastructure sous-jacente.

Pour garantir la précision des opérations de mise à l'échelle ultérieures et la stabilité du système, le module complémentaire de mise à l'échelle instantanée des nœuds suspend les opérations de mise à l'échelle jusqu'à ce que vous ayez résolu les problèmes liés aux nœuds anormaux.

**Comment configurer des ressources personnalisées pour les pools de nœuds ayant la mise à l'échelle instantanée des nœuds activée ?**

Vous pouvez configurer un pool de nœuds avec la mise à l'échelle instantanée des nœuds activée en utilisant un tag ECS avec un préfixe fixe. Cela permet au module complémentaire de mise à l'échelle d'identifier les ressources personnalisées disponibles dans le pool de nœuds ou les valeurs exactes des ressources spécifiées.

Remarque

Le module complémentaire de mise à l'échelle instantanée des nœuds, ACK GOATScaler, doit être en version v0.2.18 ou ultérieure. Pour mettre à niveau le module complémentaire, consultez la section Gérer les modules complémentaires.

goatscaler.io/node-template/resource/{resource-name}:{resource-size}

Exemple :

goatscaler.io/node-template/resource/hugepages-1Gi:2Gi

Comportement lors de la réduction (scale-in)

Pourquoi la mise à l'échelle instantanée des nœuds échoue-t-elle à réduire le nombre de nœuds ?

Vérifiez les problèmes suivants :

  • L'option permettant de ne réduire que les nœuds vides est activée, mais le nœud cible n'est pas vide.

  • Le total des demandes de ressources des pods sur le nœud dépasse le seuil d'utilisation de réduction configuré.

  • Le nœud exécute des pods du namespace kube-system.

  • Un pod sur le nœud a des exigences de planification strictes qui l'empêchent d'être replanifié sur d'autres nœuds.

  • Un pod sur le nœud est protégé par un PodDisruptionBudget (PDB), et la suppression du nœud violerait le PDB.

  • Si un nœud a été ajouté récemment, la mise à l'échelle instantanée des nœuds ne le réduira pas pendant les 10 premières minutes.

  • Un nœud hors ligne existe. Un nœud hors ligne est une instance en cours d'exécution qui n'a pas d'objet nœud correspondant dans le cluster. À partir de la version v0.5.3, le module complémentaire de mise à l'échelle instantanée des nœuds peut nettoyer automatiquement ces instances. Pour les versions antérieures, vous devez les supprimer manuellement.

    La version 0.5.3 est en version canary. Pour demander l'accès, soumettez un ticket. Pour savoir comment mettre à niveau le module complémentaire, consultez la section Gérer les modules complémentaires.

    Vous pouvez vérifier la présence de nœuds hors ligne sur la page Node Pools . Cliquez sur Sync Node Pool , puis cliquez sur Details pour le pool de nœuds concerné, et affichez l'onglet Nodes .

Quels types de pods peuvent empêcher la mise à l'échelle instantanée des nœuds de supprimer un nœud ?

Si un pod n'est pas créé par un contrôleur Kubernetes natif, tel qu'un Deployment, ReplicaSet, Job ou StatefulSet, ou si les pods sur un nœud ne peuvent pas être arrêtés ou migrés en toute sécurité, la mise à l'échelle instantanée des nœuds peut être incapable de supprimer le nœud.

Contrôle de la mise à l'échelle via les pods

Comment utiliser un pod pour contrôler la réduction des nœuds par la mise à l'échelle instantanée des nœuds ?

Utilisez l'annotation de pod goatscaler.io/safe-to-evict pour contrôler si la mise à l'échelle instantanée des nœuds peut réduire le nœud sur lequel le pod s'exécute.

  • Pour empêcher la réduction d'un nœud, ajoutez l'annotation "goatscaler.io/safe-to-evict": "false" à un pod sur ce nœud.

  • Pour autoriser la réduction d'un nœud, ajoutez l'annotation "goatscaler.io/safe-to-evict": "true" à un pod sur ce nœud.

Contrôle de la mise à l'échelle via les nœuds

Comment spécifier quels nœuds supprimer lors d'une réduction avec la mise à l'échelle instantanée des nœuds ?

Pour forcer la suppression d'un nœud, ajoutez le taint goatscaler.io/force-to-delete:true:NoSchedule. La mise à l'échelle instantanée des nœuds supprime alors immédiatement le nœud sans vérifier son statut ni drainer les pods. Utilisez cette fonctionnalité avec prudence, car elle peut provoquer des interruptions de service ou une perte de données.

Comment empêcher la réduction d'un nœud par la mise à l'échelle instantanée des nœuds ?

Empêchez la réduction d'un nœud par le module complémentaire de mise à l'échelle instantanée des nœuds en ajoutant l'annotation "goatscaler.io/scale-down-disabled": "true" au nœud. Utilisez la commande suivante pour ajouter l'annotation :

kubectl annotate node <nodename> goatscaler.io/scale-down-disabled=true

La mise à l'échelle instantanée des nœuds peut-elle ne réduire que les nœuds vides ?

Vous pouvez configurer ce comportement au niveau du nœud ou au niveau du cluster. Si des paramètres sont configurés aux deux niveaux, le paramètre au niveau du nœud est prioritaire.

  • Configuration au niveau du nœud : Ajoutez le label goatscaler.io/scale-down-only-empty:true à un nœud pour activer ce comportement, ou le label goatscaler.io/scale-down-only-empty:false pour le désactiver.

  • Configuration au niveau du cluster : Dans la console ACK, accédez à la page Add-ons. Trouvez le module complémentaire ACK GOATScaler et configurez le paramètre ScaleDownOnlyEmptyNodes sur true ou false.

Module complémentaire de mise à l'échelle instantanée des nœuds

Existe-t-il des opérations qui déclenchent une mise à jour automatique du module complémentaire de mise à l'échelle instantanée des nœuds ?

Non. À l'exception de la maintenance système et des mises à niveau de la plateforme, ACK ne met pas à jour automatiquement le module complémentaire ACK GOATScaler. Vous devez le mettre à niveau manuellement depuis la page Add-ons de la console ACK.

La mise à l'échelle des nœuds ne fonctionne pas sur mon cluster managé ACK bien que l'autorisation de rôle soit complète

Cela signifie généralement que le jeton addon.aliyuncsmanagedautoscalerrole.token est absent d'un Secret dans le namespace kube-system. ACK utilise le Worker Role du cluster pour activer la mise à l'échelle automatique, et ce jeton est requis pour l'authentification.

Réappliquez la stratégie requise au Worker Role à l'aide de la console ACK :

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

  2. Sur la page Node Pools, cliquez sur Enable à droite de Node Scaling.

  3. Suivez les instructions à l'écran pour autoriser le KubernetesWorkerRole et attacher la stratégie système AliyunCSManagedAutoScalerRolePolicy.

    Dans la boîte de dialogue Node Scaling Configuration, après la réussite de la pré-vérification, cliquez sur le lien du nom du rôle dans la zone d'invite pour accéder à Resource Access Management (RAM) et terminer l'autorisation.

  4. Redémarrez manuellement le Deployment cluster-autoscaler (mise à l'échelle automatique des nœuds) ou le Deployment ack-goatscaler (mise à l'échelle instantanée des nœuds) dans le namespace kube-system pour que les autorisations prennent effet immédiatement.