# Scheduling, Preemption and Eviction

LLMS index: [llms.txt](/llms.txt)

---

In Kubernetes, scheduling refers to making sure that <a class='glossary-tooltip' title='A Pod represents a set of running containers in your cluster.' data-bs-toggle='tooltip' data-bs-placement='top' href='/docs/concepts/workloads/pods/' target='_blank' aria-label='Pods'>Pods</a>
are matched to <a class='glossary-tooltip' title='A node is a worker machine in Kubernetes.' data-bs-toggle='tooltip' data-bs-placement='top' href='/docs/concepts/architecture/nodes/' target='_blank' aria-label='Nodes'>Nodes</a> so that the
<a class='glossary-tooltip' title='An agent that runs on each node in the cluster. It makes sure that containers are running in a pod.' data-bs-toggle='tooltip' data-bs-placement='top' href='/docs/reference/command-line-tools-reference/kubelet' target='_blank' aria-label='kubelet'>kubelet</a> can run them. Preemption
is the process of terminating Pods with lower <a class='glossary-tooltip' title='Pod Priority indicates the importance of a Pod relative to other Pods.' data-bs-toggle='tooltip' data-bs-placement='top' href='/docs/concepts/scheduling-eviction/pod-priority-preemption/#pod-priority' target='_blank' aria-label='Priority'>Priority</a>
so that Pods with higher Priority can schedule on Nodes. Eviction is the process
of terminating one or more Pods on Nodes.

## Scheduling

* [Kubernetes Scheduler](/docs/concepts/scheduling-eviction/kube-scheduler/)
* [Assigning Pods to Nodes](/docs/concepts/scheduling-eviction/assign-pod-node/)
* [Pod Overhead](/docs/concepts/scheduling-eviction/pod-overhead/)
* [Pod Topology Spread Constraints](/docs/concepts/scheduling-eviction/topology-spread-constraints/)
* [Taints and Tolerations](/docs/concepts/scheduling-eviction/taint-and-toleration/)
* [Scheduling Framework](/docs/concepts/scheduling-eviction/scheduling-framework)
* [Dynamic Resource Allocation](/docs/concepts/scheduling-eviction/dynamic-resource-allocation)
* [Scheduler Performance Tuning](/docs/concepts/scheduling-eviction/scheduler-perf-tuning/)
* [Resource Bin Packing for Extended Resources](/docs/concepts/scheduling-eviction/resource-bin-packing/)
* [Pod Scheduling Readiness](/docs/concepts/scheduling-eviction/pod-scheduling-readiness/)
* [PodGroup Scheduling](/docs/concepts/scheduling-eviction/podgroup-scheduling/)
* [Gang Scheduling](/docs/concepts/scheduling-eviction/gang-scheduling/)
* [Topology-aware Scheduling](/docs/concepts/scheduling-eviction/topology-aware-scheduling/)
* [Workload-Aware preemption](/docs/concepts/scheduling-eviction/workload-aware-preemption/)
* [Descheduler](https://github.com/kubernetes-sigs/descheduler#descheduler-for-kubernetes)
* [Node Declared Features](/docs/concepts/scheduling-eviction/node-declared-features/)

## Pod Disruption

<p><a href="/docs/concepts/workloads/pods/disruptions/">Pod disruption</a> is the process by which
Pods on Nodes are terminated either voluntarily or involuntarily.</p>
<p>Voluntary disruptions are started intentionally by application owners or cluster
administrators. Involuntary disruptions are unintentional and can be triggered by
unavoidable issues like Nodes running out of <a class='glossary-tooltip' title='A defined amount of infrastructure available for consumption (CPU, memory, etc).' data-bs-toggle='tooltip' data-bs-placement='top' href='/docs/reference/glossary/?all=true#term-infrastructure-resource' target='_blank' aria-label='resources'>resources</a>,
or by accidental deletions.</p>

* [Pod Priority and Preemption](/docs/concepts/scheduling-eviction/pod-priority-preemption/)
* [Node-pressure Eviction](/docs/concepts/scheduling-eviction/node-pressure-eviction/)
* [API-initiated Eviction](/docs/concepts/scheduling-eviction/api-eviction/)

---

Section pages:

- [Kubernetes Scheduler](/docs/concepts/scheduling-eviction/kube-scheduler/)
- [Topology-Aware Workload Scheduling](/docs/concepts/scheduling-eviction/topology-aware-scheduling/)
- [Assigning Pods to Nodes](/docs/concepts/scheduling-eviction/assign-pod-node/)
- [Pod Overhead](/docs/concepts/scheduling-eviction/pod-overhead/)
- [Pod Scheduling Readiness](/docs/concepts/scheduling-eviction/pod-scheduling-readiness/)
- [Pod Topology Spread Constraints](/docs/concepts/scheduling-eviction/topology-spread-constraints/)
- [Taints and Tolerations](/docs/concepts/scheduling-eviction/taint-and-toleration/)
- [Scheduling Framework](/docs/concepts/scheduling-eviction/scheduling-framework/)
- [Dynamic Resource Allocation](/docs/concepts/scheduling-eviction/dynamic-resource-allocation/)
- [Gang Scheduling](/docs/concepts/scheduling-eviction/gang-scheduling/)
- [Scheduler Performance Tuning](/docs/concepts/scheduling-eviction/scheduler-perf-tuning/)
- [PodGroup Scheduling](/docs/concepts/scheduling-eviction/podgroup-scheduling/)
- [Resource Bin Packing](/docs/concepts/scheduling-eviction/resource-bin-packing/)
- [Workload-Aware Preemption](/docs/concepts/scheduling-eviction/workload-aware-preemption/)
- [Pod Priority and Preemption](/docs/concepts/scheduling-eviction/pod-priority-preemption/)
- [Node-pressure Eviction](/docs/concepts/scheduling-eviction/node-pressure-eviction/)
- [API-initiated Eviction](/docs/concepts/scheduling-eviction/api-eviction/)
- [Node Declared Features](/docs/concepts/scheduling-eviction/node-declared-features/)
