☸️Kubernetes Requests and Limits Guide

Requests and limits to QoS class and node fit

No recommended numbers here. They depend on the workload, so enter the values you actually use and the tool decides the QoS class and whether the pods fit. A blank field means not set.

m
m
Mi
Mi
pods
m
Mi
ClassRule
GuaranteedEvery container sets CPU and memory limits and the requests equal them. Setting limits only fills requests with the same value, which lands here.
BurstableAt least one request or limit is set but the Guaranteed condition is not met.
BestEffortNo requests and no limits are set at all.

You Might Also Need

Requests and limits do different jobs

Requests are the reservation the scheduler uses to place a pod on a node, while limits are the ceiling the container cannot cross while running. How you fill them decides whether the pod is Guaranteed, Burstable or BestEffort, and the tool shows the class with the reason behind it. Setting only limits fills the requests with the same values.

What happens above the ceiling also differs per resource. CPU above its limit is throttled, so the container slows but survives, while memory above its limit ends the container with an OOMKill. Whether the replicas fit is calculated from the sum of requests against allocatable capacity, not from limits, following the Kubernetes documentation checked in October 2026.

No recommended numbers are offered, because the right values depend on the workload and traffic and no authority publishes them. Measure real usage with monitoring and type that in. LimitRange, vertical autoscaling, taints and affinity, and the share daemonsets take are not modelled.

Frequently Asked Questions

Which class do I get if I set only limits?

Set both CPU and memory limits and leave requests blank, and the requests are filled with the same values, which makes the pod Guaranteed. Setting only one of them leaves it Burstable.

Why do CPU and memory behave differently above the limit?

CPU is time-shared, so going over the ceiling only throttles the container. Memory already handed out cannot be taken back, so crossing the memory limit ends the container with an OOMKill.

Why count pods per node from requests?

The scheduler ignores limits and only checks that the sum of requests stays within allocatable capacity. That is why limits can add up past the node and the pods still schedule, right up until they all run at their ceiling.