1 Repo
Packs pods into fewer nodes by evicting them from underutilized nodes to facilitate downscaling.
Distinct from Cluster Node Management: Shortlist focuses on cluster formation or migration, not compaction for downscaling
Explore 1 awesome GitHub repository matching devops & infrastructure · Workload Compaction. Refine with filters or upvote what's useful.
Descheduler ist ein Kubernetes-Workload-Rebalancer und Pod-Eviction-Manager, der darauf ausgelegt ist, die Ressourcenverteilung zu optimieren und die Cluster-Stabilität aufrechtzuerhalten. Er identifiziert und entfernt Pods, die Scheduling-Einschränkungen oder Gesundheitsanforderungen nicht mehr erfüllen, und ermöglicht es dem Cluster, diese auf geeignetere Nodes zu verschieben. Das Projekt bietet spezialisierte Funktionen zum Ausgleich der Node-Ressourcenauslastung, zur Durchsetzung von Topology-Spread-Constraints und zum Entfernen doppelter Pods zur Verbesserung der Verteilung. Es fungiert zudem als Autoscaler-Helfer, indem es Workloads auf weniger Nodes verdichtet, um das Downscaling ungenutzter Infrastruktur zu erleichtern. Das System deckt eine Vielzahl von Wartungsaufgaben ab, einschließlich der Bereinigung fehlerhafter, instabiler oder veralteter Pods sowie der Durchsetzung von Node-Affinity- und Taint-Regeln. Es enthält Sicherheitsmechanismen wie die Validierung der Scheduling-Passgenauigkeit, um sicherzustellen, dass Pods vor der Eviction neu geplant werden können, label-basiertes Filtern zum Schutz kritischer Workloads sowie einen Dry-Run-Modus zur Vorschau von Änderungen. Das Tool kann als kontinuierlicher Hintergrundprozess oder als wiederkehrender Cron-Job bereitgestellt werden und unterstützt Hochverfügbarkeit durch Leader-Election.
Evicts pods from underutilized nodes into fewer, denser nodes to facilitate cluster downscaling.