Kubernetes / unclassified
K8s Cpu Manager Static
K8s Cpu Manager Static is in the graph because written lessons depend on it. Its own explainer is not written yet.
Where this is already explained
- CPU Requests, Limits and CFS Throttling
That a CPU limit is a ceiling that caps speed, so setting one is harmless hygiene. It is a per-100ms budget: a multi-threaded process can burn the whole budget in a few milliseconds and then sit completely stopped for the remaining 80-90 ms, producing tail-latency spikes on a service averaging a third of its limit. Teams then read the throttling metric as a capacity signal and buy bigger nodes, which makes it worse.
- QoS Classes: Guaranteed, Burstable, BestEffort
That QoS is a setting, and that Guaranteed is a promise the kubelet keeps. Neither is true. You cannot set qosClass — it is derived by ComputePodQOS from the numbers you already wrote, so a sidecar injected without resources silently downgrades a carefully-Guaranteed pod to Burstable. And the kubelet's eviction ranking never looks at the class at all: rankMemoryPressure sorts on whether usage exceeds requests, then Pod Priority, then usage above requests. The familiar ordering BestEffort, Burstable, Guaranteed is a consequence of those three comparisons, not a rule, and it breaks whenever Priority disagrees — a Guaranteed pod at priority 0 is evicted before a Burstable pod at priority 1000.
2 published lessons depend on this concept, which is what moves it up the writing queue. Nothing is hidden behind this page — it has not been written.