openshift/descheduler

Descheduler for Kubernetes

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 33 minutes ago
Added to GitGenius on June 23rd, 2023
Created on September 26th, 2017
Open Issues & Pull Requests: 19 (+0)
Number of forks: 17
Total Stargazers: 8 (+0)
Total Subscribers: 163 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 27.6 days
Mean response time: 27.6 days
90th percentile: 27.6 days
Tracked items: 1

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 1
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 88 days
Stale 30+ days: 0
Stale 90+ days: 0

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • tide/merge-blocker (9)
  • lifecycle/rotten (1)

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

Descheduler for Kubernetes is a tool that evicts running pods from nodes to rebalance cluster workloads based on configurable policies.

Kubernetes scheduling decisions are made once when a pod is created, but cluster state changes constantly as nodes are added, removed, or modified with new taints and labels. Pods that were appropriately scheduled may become suboptimal over time, or nodes may become under or over utilized. Descheduler solves this by continuously monitoring the cluster and identifying pods that no longer fit the desired state according to its policy rules. It evicts these pods, allowing the default Kubernetes scheduler to reschedule them on more appropriate nodes. The tool does not perform the rescheduling itself but relies on the standard scheduler to place evicted pods.

Descheduler suits clusters where workload distribution matters and node utilization should be actively managed. It works as a Job, CronJob, or Deployment within the cluster and can run repeatedly without manual intervention. The tool is installed as a critical pod in the kube-system namespace to prevent the kubelet from evicting it. Installation options include Helm charts and Kustomize, with official Helm support available. Teams should consult the documentation branch matching their deployed version, as the tool maintains separate documentation for each release line.

The project's issue tracker shows work dominated by merge-blocker labels, indicating active gatekeeping on code quality and integration standards.