Répartir les gousses sur le cluster

Aug 20 2020

Utilisation actuelle de la politique de mise à l'échelle automatique d'AWS pour démarrer les nœuds de travail EKS (min + 10 souhaités, max 15) à heure fixe chaque jour. Il y a 120 pods et 30 déploiements.

Évidemment, un seul nœud sera opérationnel en premier. Puis le deuxième nœud. Après ce dernier nœud sera en place. Pour cette raison, Kubernetes ajoute tous les pods dans les premiers nœuds. Existe-t-il un moyen de répartir uniformément les pods dans le scénario ?

Réponses

1 EduardoBaitello Oct 23 2020 at 21:30

Jetez un œil au Descheduler . Ce projet s'exécute comme un travail Kubernetes qui vise à tuer les pods lorsqu'il pense que le cluster est déséquilibré.

La LowNodeUtilizationstratégie semble correspondre à votre cas :

Cette stratégie trouve les nœuds qui sont sous-utilisés et expulse les pods, si possible, des autres nœuds dans l'espoir que la recréation des pods évincés sera planifiée sur ces nœuds sous-utilisés.


Une autre option consiste à appliquer manuellement un peu d'ingénierie du chaos, en forçant une mise à jour continue sur votre déploiement et, espérons-le, le planificateur résoudra le problème d'équilibre lorsque les pods seront recréés.

Vous pouvez utiliser le kubectl rollout restart my-deployment. C'est bien mieux que de simplement supprimer les pods avec kubectl delete pod, car le déploiement garantira la disponibilité pendant le "rééquilibrage" (bien que la suppression totale des pods augmente vos chances d'un meilleur rééquilibrage).

2 joshk132 Aug 21 2020 at 09:19

Vous devriez examiner l'affinité et l'anti-affinité car cela vous permet de contrôler quels pods vont sur quel nœud. Vous pouvez faire en sorte qu'avec l'anti-affinité, il n'y ait qu'un seul pod de chaque déploiement sur un nœud. C'est un peu exagéré et ne fonctionnerait pas exactement pour vous bien que IIRC vous pouvez avoir plusieurs pods sur un nœud juste avec une limite.

https://kubernetes.io/docs/tasks/configure-pod-container/assign-pods-nodes-using-node-affinity/