Scheduling
Requests, limits, QoS
40 / 82

Requests reserve capacity for the scheduler; limits cap use at runtime.

The two settings answer different questions, and together they decide a Pod's quality-of-service class and who is evicted first.

container resources
resources:
  requests: {cpu: 500m, memory: 512Mi}  # scheduler reserves this
  limits:   {cpu: "1",  memory: 1Gi}      # kernel enforces this
CPU over limit

Throttled: slowed down, never killed.

Memory over limit

OOMKilled: the kernel kills the process.

Why it matters

The scheduler places a Pod only where unreserved requests fit. Set requests too low and a node is oversold; too high and capacity sits idle and costs money.

Guaranteed

requests equal limits for every container. Evicted last. Use for payments, databases.

Burstable

requests set below limits (or limits missing). Middle priority. The common default.

BestEffort

no requests or limits at all. Evicted first under node memory pressure. Avoid in production.