CertGrid CertGrid
Hands-on Lab·Certified Kubernetes Administrator

Namespaces, ResourceQuotas and LimitRanges

A quota caps a namespace in total, a LimitRange constrains each container, and they are enforced at different moments by different code. Watch a Pod get defaults it never asked for, get a rejection from the LimitRange rather than the quota you expected, and watch a Deployment stall at 3 of 6 replicas.

Cluster Architecture and Configuration Guide 17 of 103 Intermediate

The specific limits are arbitrary. Which object rejects what, and when, is not.

Any cluster does. Everything below is `kubectl` against the four-node lab.
Server NameIP AddressOSRolesCPURAMHDD
CKA1001192.168.0.175Ubuntu 26.04 LTSControl Plane Node2 Core4 GB50 GB
CKA1001-NODE01192.168.0.176Ubuntu 26.04 LTSWorker Node2 Core4 GB50 GB
CKA1001-NODE02192.168.0.177Ubuntu 26.04 LTSWorker Node2 Core4 GB50 GB
CKA1001-NODE03192.168.0.178Ubuntu 26.04 LTSWorker Node2 Core4 GB50 GB

This guide includes

Use this when a namespace needs a budget, or when a Deployment is quietly running fewer replicas than you asked for. This matters because a quota caps the namespace in total while a LimitRange constrains each container, and the two are enforced at different moments by different things.

Before you start

  1. What a namespace is, and what it is not

  2. Set a default namespace instead of typing -n

  3. Namespace deletion is a cascade

  4. A quota and a LimitRange, and why you need both

  5. Watch a Pod receive resources it never asked for

  6. The rejection you get is not always the one you expected

  7. A Deployment does not fail, it stalls

  8. Read the totals, and clean up

Official sources