Requests — guaranteed resources. Limits — maximum allowed resources.
1apiVersion: v12kind: Pod3metadata:4 name: resource-pod5spec:6 containers:7 - name: app8 image: nginx:latest9 resources:10 requests:11 cpu: "250m" # 0.25 CPU guaranteed12 memory: "128Mi" # 128MB guaranteed13 limits:14 cpu: "1000m" # 1 CPU maximum15 memory: "512Mi" # 512MB maximum (OOM kill if exceeded)16---17# No limits (Burstable)18apiVersion: v119kind: Pod20metadata:21 name: burstable-pod22spec:23 containers:24 - name: app25 image: nginx:latest26 resources:27 requests:28 cpu: "100m"29 memory: "64Mi"30 limits:31 cpu: "500m"32 memory: "256Mi"33---34# No requests/limits (BestEffort)35apiVersion: v136kind: Pod37metadata:38 name: besteffort-pod39spec:40 containers:41 - name: app42 image: nginx:latest43 # No resources defined
1# Check resource requests/limits2kubectl get pod resource-pod -o jsonpath='{.spec.containers[0].resources}' | jq34# Check actual usage5kubectl top pod resource-pod --containers6kubectl top pod resource-pod78# Check QoS class9kubectl get pod resource-pod -o jsonpath='{.status.qosClass}'1011# Check node allocation12kubectl describe node node-1 | grep -A 5 "Allocated resources"1314# Check LimitRange defaults15kubectl get limitrange -n default -o json | jq '.items[0].spec.limits'
Behavior:
CPU:
Memory: