3
votes

L'autoscaler de cluster ne se met pas à l'échelle avec nodeSelector

J'ai un cluster Kubernetes exécutant diverses applications avec différents types de machines (c.-à-d. cpu-heavy, gpu, ram-heavy) et installé cluster-autoscaler (CA) pour gérer les groupes Auto Scaling (ASG) à l'aide de la découverte automatique.

Version de Kubernetes: EKS 1.11

Autoscaler de cluster: v1.13.2

J'ai configuré mes ASG de manière à ce qu'ils contiennent les balises CA appropriées. Ces ASG sont généralement réduits à 0 nœud et seront mis à l'échelle en fonction de la charge de travail. En allant dans les journaux de l'AC, j'ai également vérifié que l'AC reconnaît l'existence des ASG. Cependant, chaque fois que j'essaye de créer des pods avec nodeSelectors, les CA n'augmentent pas l'ASG correspondant et répondent avec "le prédicat a échoué: nodeSelector (s) does not match". J'ai également ajouté les étiquettes de nœuds appropriées aux balises ASG.

Cela pourrait-il être une limitation due à la mise à l'échelle à partir de 0 nœuds?

Impossible de trouver des problèmes similaires en ligne. Tout commentaire aiderait! Merci!


0 commentaires

3 Réponses :


0
votes

J'ai une configuration beaucoup plus simple ici. Je n'ai qu'un seul groupe d'ASG. Le montant minimum est de 1 et 10 maximum.

Peut-être que la découverte automatique ne fonctionne pas comme elle le devrait. C'est la meilleure approche, mais cela ne fonctionne pas. Je donnerais un essai sur l'exemple ci-dessous pour gérer plusieurs ASG.

https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/cloudprovider/aws/examples/cluster-autoscaler-multi-asg.yaml

J'ai le même doute que vous, je ne suis pas sûr que l'autoscaler fonctionne correctement à partir de 0 nœuds.


2 commentaires

J'ai également observé le comportement intéressant que CA semble aimer quand je n'ai qu'une seule étiquette de nœud. Il parfois évolue correctement ...


Vous résolvez votre propre problème et l'avez publié. Bon travail :)



3
votes

Mise à jour: mise à jour de la documentation CA

J'avais la balise ASG incorrecte. Assurez-vous que vous disposez de k8s.io/cluster-autoscaler/node-template/label/some-label pour vous assurer que CA peut voir les étiquettes de vos nœuds lorsque l'ASG est réduit à 0. Actuellement, CA ne ne créez pas d'étiquettes de nœuds basées sur des balises ASG, mais cette fonctionnalité est en cours d'élaboration.


0 commentaires

1
votes

Je ne sais pas quel fournisseur de cloud vous utilisez.

Il semble que CA ne puisse pas évoluer avec les étiquettes de nœuds lors de l'utilisation de nodeSelector, mais si vous changez la façon dont vous définissez l'étiquette requise et utilisez nodeAdffinitiy, il augmentera.

J'ai parlé au support Amazon et ils prétendent que c'est parce que l'autorité de certification est incapable de lire le script userdata et de lire les étiquettes.

Dans tous les cas, cela ne semble nécessaire que pour passer à 0 nœuds

Il est également indiqué ici https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/cloudprovider/aws/README.md#scaling-a-node-group-to-0 < / a> que vous devriez baliser l'ASG et cela devrait fonctionner


0 commentaires