Kubernetes descheduler that evicts pods to improve workload placement.
Descheduler for Kubernetes evicts pods from nodes based on configurable policies, allowing the default scheduler to reassign them to nodes that are a better fit. It addresses scheduling decisions that become suboptimal over time as cluster state changes - for example, when new nodes are added, node labels change, or resource utilization shifts.
Descheduler ships a set of built-in policies such as RemoveDuplicates, LowNodeUtilization, and
RemovePodsViolatingNodeAffinity that can be composed and tuned to match your cluster's rebalancing requirements. It
can run as a Deployment, CronJob, or Job depending on how frequently you want evictions to occur.
Official documentation: https://github.com/kubernetes-sigs/descheduler