1 dépôt
Process of relocating pods to satisfy scheduling constraints after cluster state changes.
Distinguishing note: Candidates focus on provisioning, images, or debugging, not the active optimization of pod placement.
Explore 1 awesome GitHub repository matching devops & infrastructure · Node Scheduling Optimization. Refine with filters or upvote what's useful.
Descheduler est un rééquilibreur de charge de travail et gestionnaire d'éviction de pods pour Kubernetes, conçu pour optimiser la distribution des ressources et maintenir la stabilité du cluster. Il identifie et supprime les pods qui ne satisfont plus les contraintes de planification ou les exigences de santé, permettant au cluster de les relocaliser sur des nœuds plus appropriés. Le projet fournit des capacités spécialisées pour équilibrer l'utilisation des ressources des nœuds, appliquer des contraintes de répartition topologique et supprimer les pods en double pour améliorer la distribution. Il fonctionne également comme une aide à l'autoscaling en compactant les charges de travail sur moins de nœuds pour faciliter la réduction de l'infrastructure inutilisée. Le système couvre un large éventail de tâches de maintenance, incluant le nettoyage des pods échoués, instables ou vieillissants, et l'application des règles d'affinité et de taints des nœuds. Il inclut des mécanismes de sécurité tels que la validation de la compatibilité de planification pour garantir que les pods peuvent être replanifiés avant l'éviction, le filtrage basé sur les labels pour protéger les charges de travail critiques, et un mode "dry-run" pour prévisualiser les changements. L'utilitaire peut être déployé en tant que processus d'arrière-plan continu ou tâche cron récurrente, et supporte la haute disponibilité via l'élection de leader.
Relocates pods that no longer satisfy node affinity or taint requirements.