~/ nmadiraju.com Amazon EKS · Requests, limits and evictions
arrow_back Back to nmadiraju
Visual Walkthrough · Kubernetes workloads

How Requests, Limits, QoS and Evictions Work on Amazon EKS

Follow node-1 as its Pods' requests fill it, their limits bite, and memory runs out, then check yourself with 8 questions.

1Visual Walkthrough

node-1's CPU and memory reservations, its Pods' requests and limits, and the kubelet evicting under memory pressure node-1 shows bars for CPU and memory reserved by requests, with usage markers. Its Pods (web, api, worker and later report) list their requests, limits and QoS class. The walkthrough shows report Pending on an idle node until web and worker are right-sized, web throttled at its CPU limit, api OOM-killed at its memory limit, and worker evicted when memory runs short, then replaced on node-2. scheduler places by requests not by actual usage report · Pending requests 1000m CPU Insufficient cpu node-2 worker (new Pod) req 200m · 3Gi lim none · 3Gi node-1 · room for Pods: 2000m CPU · 4096Mi memory CPU reserved: 1500m of 2000m memory reserved: 1536Mi of 4096Mi web api worker 500m left web api worker report report web api worker report api worker report report used: 300m node-1 used: 2.5Gi used: 3.9Gi web req 500m · 512Mi lim 1 CPU · 512Mi EVICTED api req 500m · 512Mi lim 500m · 512Mi EVICTED worker req 500m · 512Mi lim none · none EVICTED report req 1000m · 512Mi lim 1000m · 512Mi EVICTED kubelet runs node-1's Pods · evicts Pods when the node runs short of memory Linux kernel enforces limits: throttles CPU, kills a container over its memory limit

    2Quiz to check understanding

    Check yourself