1 votes

Trouver les pods inutiles ou surprovisionnés sur un cluster Kubernetes "plein" mais sous-utilisé.

Je travaille sur un cluster Kubernetes où, à l'heure actuelle, environ 95 % des processeurs et 90 % de la mémoire ont été alloués aux pods. Cependant, selon le tableau de bord Kubernetes, la charge instantanée globale des CPU sur le cluster n'est que de 5 % environ du nombre total de cœurs du cluster, et la mémoire totale utilisée n'est que de 33 % environ de la mémoire totale du cluster. Il est donc clair que certains, voire la plupart des Les pods fonctionnant sur le cluster sont largement surdimensionnés. La plupart de l'unité centrale et de la mémoire demandées ne sont pas réellement utilisées à un moment donné.

Comment puis-je savoir dont les pods sont les plus à blâmer pour cela ? Le tableau de bord me montrera la quantité de ressources allouées à chaque nœud, et la quantité de ressources réellement utilisées par chaque pod en cours d'exécution. Mais pour voir les requêtes d'un pod, je dois kubectl describe Je n'arrive pas à trouver les demandes dans le tableau de bord. De plus, lorsqu'un pod se termine et est nettoyé, il disparaît, et je ne connais aucun moyen de poser des questions du type "Quelle portion de la mémoire demandée ce module complet a-t-il utilisé au maximum ?" ou "Combien d'heures de base ce module a-t-il demandé mais n'a pas utilisé au cours de sa vie ?" .

Quels outils existent pour trouver et diagnostiquer les ressources gaspillées, demandées mais non consommées dans les clusters Kubernetes ? Et quelles sont les meilleures pratiques à employer pour adapter les pods aux charges de travail ? Je pense que nous nous sommes retrouvés dans cette situation en laissant tous les utilisateurs doubler leurs demandes de ressources jusqu'à ce que leurs pods cessent d'être expulsés.

2voto

Cela peut être réalisé avec Autoscaladeur de pods verticaux (VPA)

Même si vous courez HPA Vous pouvez activer le mode recommandation qui calculera les besoins en ressources recommandés des pods sans rien changer automatiquement.

Après installation le système est prêt à recommander et à définir les demandes de ressources pour vos pods. Afin de l'utiliser, vous devez insérer un fichier Autoscaladeur de pods verticaux pour chaque contrôleur dont vous voulez que les besoins en ressources soient calculés automatiquement. Il s'agira le plus souvent d'un Déploiement . Il existe trois modes dans lesquels APVs fonctionner :

...

"Off" : L'APV ne modifie pas automatiquement les besoins en ressources des pods. Les recommandations sont calculées et peuvent être inspectées dans l'objet VPA.

D'autres moyens d'y parvenir pourraient être utilisés grafana .

Dans le cas d'un cluster GKE sur GCP, il y a explorateur de métriques .

J'espère que cela vous aidera.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X