Si votre cluster ne dispose pas d'une capacité suffisante pour planifier les Pods de vos applications, vous pouvez utiliser la mise à l'échelle automatique des nœuds pour ajouter ou supprimer automatiquement des nœuds. La mise à l'échelle automatique des nœuds est idéale pour les scénarios avec des besoins de mise à l'échelle limités, tels que moins de 20 pools de nœuds à mise à l'échelle automatique ou moins de 100 nœuds dans ces pools. Elle convient également aux charges de travail au trafic stable, dont la demande en ressources est prévisible et peut être satisfaite par une seule opération de mise à l'échelle, ou qui présentent des besoins périodiques ou anticipables en ressources.
Avant de commencer
Pour tirer pleinement parti de la mise à l'échelle automatique des nœuds, consultez la rubrique Mise à l'échelle des nœuds et familiarisez-vous avec les concepts suivants :
Fonctionnement et fonctionnalités de la mise à l'échelle automatique des nœuds
Cas d'utilisation où la mise à l'échelle automatique des nœuds répond à vos exigences métier
Points importants à considérer avant d'utiliser la mise à l'échelle automatique des nœuds
Lors d'une réduction de capacité (scale-in), les instances sous abonnement sont supprimées mais non libérées. Pour éviter des coûts supplémentaires, utilisez des instances au paiement à l'utilisation lorsque vous activez cette fonctionnalité.
Prérequis
Assurez-vous d'avoir activé Auto Scaling.
Consultez la section Notes d'utilisation pour comprendre les quotas et les limitations de la mise à l'échelle des nœuds.
-
La mise à l'échelle automatique des nœuds présente des limitations connues avec certaines politiques de planification, ce qui peut entraîner des résultats de mise à l'échelle inattendus. Si vos charges de travail ou vos composants utilisent une politique de planification non prise en charge, envisagez l'une des solutions suivantes :
Solution 1 : Basculez vers la mise à l'échelle instantanée des nœuds.
-
Solution 2 : Déployez les charges de travail ou les composants concernés dans un pool de nœuds pour lequel la mise à l'échelle des nœuds n'est pas activée.
Par exemple, pour déployer le composant ack-node-local-dns-admission-controller, placez-le dans un pool de nœuds sans mise à l'échelle des nœuds activée et déclarez l'exigence d'affinité de nœud suivante dans la configuration du composant :
nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: "k8s.aliyun.com" operator: "NotIn" values: ["true"]
Le composant cluster-autoscaler nécessite des ressources de nœud pour les mises à jour ou les déploiements. Des ressources insuffisantes peuvent entraîner l'échec de ces opérations et provoquer des problèmes de mise à l'échelle. Assurez-vous que vos nœuds disposent de ressources suffisantes.
Cette fonctionnalité implique les étapes suivantes :
Étape 1 : Activer la mise à l'échelle automatique des nœuds pour le cluster : Vous devez d'abord activer la mise à l'échelle automatique des nœuds au niveau du cluster avant que les politiques de mise à l'échelle de vos pools de nœuds ne puissent prendre effet.
Étape 2 : Configurer un pool de nœuds pour la mise à l'échelle automatique : La fonctionnalité de mise à l'échelle automatique des nœuds affecte uniquement les pools de nœuds configurés pour la mise à l'échelle automatique. Par conséquent, vous devez définir le mode de mise à l'échelle des pools de nœuds cibles sur Automatique.
Étape 1 : Activer la mise à l'échelle automatique des nœuds
Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.
Sur la page Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, sélectionnez .
Sur la page Node Pools, cliquez sur Enable en regard de Node Scaling.
-
Si vous utilisez la mise à l'échelle automatique des nœuds pour la première fois, suivez les instructions à l'écran pour activer le service Auto Scaling et accorder les autorisations requises. Vous pouvez ignorer cette étape si cela a déjà été fait.
Cluster géré ACK : autorisez le rôle AliyunCSManagedAutoScalerRole.
-
Cluster dédié ACK : autorisez le rôle KubernetesWorkerRole et associez la stratégie AliyunCSManagedAutoScalerRolePolicy.
Dans la boîte de dialogue Node Scaling Configuration, une fois la vérification préalable réussie, cliquez sur le lien du rôle RAM (par exemple
KubernetesWorkerRole-xxxx) pour finaliser l'autorisation dans la console RAM.
-
Dans la boîte de dialogue Node Scaling Configuration, définissez le paramètre Node Scaling Plan sur Auto Scaling, configurez les paramètres de mise à l'échelle, puis cliquez sur OK.
Vous pouvez modifier la méthode de mise à l'échelle des nœuds après la configuration initiale. Pour ce faire, modifiez la sélection ici pour opter pour la mise à l'échelle instantanée des nœuds. Lisez attentivement et suivez les instructions à l'écran pour terminer le processus.
Paramètre
Description
Node Pool Scale-out Policy
-
Random Policy : Si plusieurs pools de nœuds sont disponibles pour l'extension, l'un d'eux est choisi au hasard.
-
Default Policy : Si plusieurs pools de nœuds sont disponibles pour l'extension, celui qui entraîne le moins de gaspillage de ressources est choisi.
-
Priority-based Policy : Si plusieurs pools de nœuds sont disponibles pour l'extension, celui ayant la priorité la plus élevée est choisi.
La priorité du pool de nœuds est définie par le paramètre Node Pool Scale-out Priority.
Node Pool Scale-out Priority
Définit la priorité d'extension pour les pools de nœuds. Ce paramètre ne prend effet que lorsque le paramètre Node Pool Scale-out Policy est défini sur Priority-based Policy.
La valeur peut être un entier compris entre 1 et 100. Une valeur plus élevée indique une priorité plus grande.
Cliquez sur Add à côté du paramètre, sélectionnez un pool de nœuds avec la mise à l'échelle automatique activée et définissez sa priorité.
Si aucun pool de nœuds avec la mise à l'échelle automatique activée n'est disponible, vous pouvez ignorer ce paramètre pour le moment et le configurer après avoir terminé l'Étape 2 : Configurer un pool de nœuds pour la mise à l'échelle automatique.
Scaling Sensitivity
L'intervalle auquel le système vérifie les conditions de mise à l'échelle. La valeur par défaut est de 60 s.
Lors de la mise à l'échelle automatique, le composant de mise à l'échelle déclenche automatiquement l'extension en fonction des conditions de planification.
Important-
Nœuds ECS : Une réduction du nombre de nœuds ne peut se produire que lorsque les trois conditions suivantes sont remplies : Scale-in Threshold, Scale-in Trigger Delay et Cooldown Period.
-
Nœuds GPU : Une réduction du nombre de nœuds GPU ne peut se produire que lorsque les trois conditions suivantes sont remplies : GPU Scale-in Threshold, Scale-in Trigger Delay et Cooldown Period.
Allow Scale-in
Indique s'il faut autoriser les opérations de réduction du nombre de nœuds. Si cette option est désactivée, les paramètres de réduction ne prennent pas effet. Utilisez ce paramètre avec prudence.
Scale-in Threshold
Le ratio entre la demande totale de ressources et la capacité totale d'un seul nœud dans un pool de nœuds où la mise à l'échelle automatique des nœuds est activée.
Un nœud est considéré pour une réduction uniquement lorsque ce ratio est inférieur au seuil configuré, ce qui signifie que son utilisation du processeur et de la mémoire est inférieure au Scale-in Threshold.
GPU Scale-in Threshold
Le seuil de réduction pour les instances GPU.
Un nœud GPU est considéré pour une réduction uniquement lorsque son utilisation du processeur, de la mémoire et du GPU est inférieure au GPU Scale-in Threshold.
Scale-in Trigger Delay
Le temps d'attente entre la détection d'une condition de réduction et l'exécution effective de l'opération de réduction. Unité : minutes. Valeur par défaut : 10 minutes.
ImportantLe composant de mise à l'échelle effectue une réduction du nombre de nœuds uniquement après que le Scale-in Threshold a été atteint et que la période de Scale-in Trigger Delay s'est écoulée.
Cooldown Period
La période suivant un événement d'extension pendant laquelle le composant de mise à l'échelle n'effectuera pas de réduction.
Pendant la période de refroidissement, le mécanisme de mise à l'échelle n'effectue pas de réductions, mais continue d'évaluer les nœuds par rapport aux conditions de réduction. À la fin de la période de refroidissement, si un nœud a satisfait au seuil de réduction pendant plus longtemps que le délai de réduction, le mécanisme le supprime. Par exemple, si la période de refroidissement est de 10 minutes et que le délai de réduction est de 5 minutes, le mécanisme ne réduira aucun nœud pendant 10 minutes après la dernière extension. Cependant, pendant ces 10 minutes, il vérifie toujours les nœuds éligibles à la réduction. Une fois la période de refroidissement de 10 minutes terminée, si un nœud a satisfait au seuil de réduction pendant plus de 5 minutes (le délai), il est réduit.
-
Étape 2 : Configurer un pool de nœuds
Vous pouvez soit configurer un pool de nœuds existant en modifiant son Scaling Mode pour le passer à Auto, soit créer un nouveau pool de nœuds avec la mise à l'échelle automatique activée.
Pour plus d'informations, consultez la rubrique Créer et gérer des pools de nœuds. Les paramètres clés sont décrits ci-dessous :
|
Parameter |
Description |
|
Scaling Mode |
Important
|
|
Instances |
Plage de mise à l'échelle des nœuds dans le pool, définie par les paramètres Min. Instances et Max. Instances. Cela n'inclut pas vos instances existantes. Remarque
|
|
Configurations liées aux instances |
Lorsqu'un pool de nœuds augmente sa capacité (scale-out), il alloue des instances issues de la famille d'instances ECS configurée. Pour améliorer le taux de réussite des augmentations de capacité, sélectionnez plusieurs types d'instances sur plusieurs zones afin d'éviter les indisponibilités ou les ruptures de stock. Le type d'instance spécifique utilisé pour l'augmentation de capacité est déterminé par la Scaling Policy configurée. Afin de garantir la stabilité de votre activité et une planification précise des ressources, ne mélangez pas les types d'instances GPU et non GPU au sein d'un même pool de nœuds. Vous pouvez configurer les types d'instances utilisés pour l'augmentation de capacité de deux manières :
Vous pouvez vous référer aux recommandations de force d'élasticité dans la console ou consulter la force d'élasticité du pool de nœuds après la création du pool. Pour obtenir des informations sur les types d'instances non pris en charge et des recommandations de configuration des nœuds, consultez la rubrique Recommandations de configuration des types d'instances ECS. Ressources cloud et facturation : |
|
Operating System |
Lorsque la mise à l'échelle automatique est activée, vous pouvez sélectionner des images Alibaba Cloud Linux, Windows ou Windows Core. Lorsque l'image sélectionnée est une image Windows ou Windows Core, le système configure automatiquement la taint suivante : |
|
Node Labels |
Les libellés de nœuds ajoutés dans le cluster sont automatiquement appliqués aux nœuds créés par la mise à l'échelle automatique. Important
La mise à l'échelle automatique ne peut reconnaître les libellés et les taints des nœuds qu'après leur mappage avec les tags du pool de nœuds. Un pool de nœuds a une limite quant au nombre de tags qu'il peut contenir. Par conséquent, le nombre total de tags ECS, de taints et de libellés de nœuds pour un pool de nœuds avec mise à l'échelle automatique activée doit être inférieur ou égal à 12. |
|
scaling policy |
Configurez la manière dont le pool de nœuds sélectionne les instances lors de la mise à l'échelle.
|
|
Use Pay-as-you-go Instances When Spot Instances Are Insufficient |
Cela nécessite que la méthode de facturation soit définie sur Spot Instance. Lorsque cette option est activée, si un nombre suffisant d'instances spot ne peut pas être créé en raison du prix, du stock ou d'autres raisons, ACK tentera automatiquement de créer des instances à la demande en complément. Ressources cloud et facturation : |
|
Enable Supplemental Spot Instance |
Cela nécessite que la méthode de facturation soit définie sur Spot Instance. Lorsque cette option 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.
La libération proactive des instances spot peut provoquer des interruptions d'activité. Pour améliorer le taux de réussite de la compensation, nous vous recommandons également d'activer l'option Use Pay-as-you-go Instances When Spot Instances Are Insufficient. Ressources cloud et facturation : |
|
Scaling Mode |
Cela nécessite que l'Auto Scaling du pool de nœuds soit activé et que le Scaling Mode soit défini sur Auto.
|
|
Taints |
Après avoir ajouté une taint à un nœud, le cluster ne planifie plus de Pods dessus. |
Étape 3 : (Facultatif) Vérification des résultats
Une fois les étapes terminées, la fonctionnalité node auto scaling est active. L'état du pool de nœuds indique que la mise à l'échelle automatique a débuté et le composant cluster-autoscaler component est installé automatiquement.
Pool de nœuds avec mise à l'échelle automatique activée
Sur la page Node Pools, la liste affiche les pools de nœuds pour lesquels la mise à l'échelle automatique est activée.
**Composant cluster-autoscaler component installé**
Dans le volet de navigation de gauche de la page de gestion du cluster, choisissez .
Sélectionnez le namespace kube-system. Le composant cluster-autoscaler component s'affiche.