Hands-on Lab·Certified Kubernetes Administrator
PriorityClasses and Preemption
Fill a node with low-priority Pods, then schedule a high-priority one and watch the scheduler delete a running Pod to make room. The evicted Pod's replacement then cannot schedule anywhere, which is the part that surprises people.
Scheduling and Placement Guide 43 of 103 Advanced
- Kubernetes1.36.4
- Cluster4 nodes
- Runtimecontainerd 2.2.6
- CNICalico v3.32.1
- TimeAbout 30 min
- Reviewed21 August 2026
Written against the versions above. Preemption deletes running Pods. Everything here is done in a scratch namespace on one pinned node.
| Server Name | IP Address | OS | Roles | CPU | RAM | HDD |
|---|---|---|---|---|---|---|
| CKA1001 | 192.168.0.175 | Ubuntu 26.04 LTS | Control Plane Node | 2 Core | 4 GB | 50 GB |
| CKA1001-NODE01 | 192.168.0.176 | Ubuntu 26.04 LTS | Worker Node | 2 Core | 4 GB | 50 GB |
| CKA1001-NODE02 | 192.168.0.177 | Ubuntu 26.04 LTS | Worker Node | 2 Core | 4 GB | 50 GB |
| CKA1001-NODE03 | 192.168.0.178 | Ubuntu 26.04 LTS | Worker Node | 2 Core | 4 GB | 50 GB |
Before you start
- The Pod stuck Pending guide, for reading the scheduler's tally and its preemption clause.
- The requests, limits and QoS guide, since preemption is decided on requests.
- A scratch namespace and a node you can fill.
-
Two classes, and the two that already exist
-
Fill one node with low-priority work
-
A high-priority Pod takes the space