https://drive.google.com/file/d/1QTMUPUBy1ik_fnO0AaGF0wPUCn3faDqE/view?usp=sharing
apiVersion: v1
kind: LimitRange
metadata:
name: def-cpu-mem-limit
namespace: dev
spec:
limits:
- default: # β Applied if Pod defines NO limits
cpu: 111m
memory: 99Mi
defaultRequest: # β Applied if Pod defines NO requests
cpu: 101m
memory: 91Mi
max: # β Hard ceiling (enforced)
cpu: 200m
memory: 100Mi
min: # β Hard floor (enforced)
cpu: 100m
memory: 90Mi
type: Container
π Key Insight:
This LimitRange does two critical things:
- Auto-applies defaults to Pods that donβt define resources
- Enforces min/max on Pods that do define resources
π‘ Why this matters:
- Without defaults β Pods are BestEffort (lowest priority, first to evict)
- Without min/max β Teams can request 1000 CPUs and break quotas
| Scenario | Behavior |
|---|---|
| Pod defines NO resources | β defaultRequest + default applied |
| Pod defines resources within min/max | β Podβs values used |
| Pod defines resources BELOW min | β Rejected (exceeds min limit) |
| Pod defines resources ABOVE max | β Rejected (exceeds max limit) |
π― Your Rules:
- CPU:
100m β€ request β€ 200m,111m β€ limit β€ 200m- Memory:
90Mi β€ request β€ 100Mi,99Mi β€ limit β€ 100Mi
β οΈ Critical Note:
defaultRequestmust be β€default(your example:101m β€ 111mβ β valid)
# Create namespace
kubectl create namespace dev
# Apply LimitRange
kubectl apply -f limit-ranges.yaml
# Verify
kubectl describe limitrange def-cpu-mem-limit -n dev
# pod-no-resources.yaml
apiVersion: v1
kind: Pod
metadata:
name: no-res-pod
namespace: dev
spec:
containers:
- name: nginx
image: nginx
kubectl apply -f pod-no-resources.yaml
# Check applied resources
kubectl get pod no-res-pod -n dev -o jsonpath='{.spec.containers[0].resources}'
# β
Output:
# {"limits":{"cpu":"111m","memory":"99Mi"},
# "requests":{"cpu":"101m","memory":"91Mi"}}
π Result:
LimitRange auto-applied defaults β Pod is Burstable (not BestEffort)!
# pod-valid-resources.yaml
apiVersion: v1
kind: Pod
metadata:
name: valid-pod
namespace: dev
spec:
containers:
- name: nginx
image: nginx
resources:
requests:
cpu: "150m"
memory: "95Mi"
limits:
cpu: "180m"
memory: "100Mi"