Kubernetes Resource Right-Sizing Advisor with Cost and Risk Reports
A Kubernetes right-sizing advisor for startups and platform teams: it studies real CPU and memory usage per workload, recommends requests and limits, prices the waste and flags workloads at risk of throttling or out-of-memory kills. An advanced cloud and DevOps final year project built on percentiles, not guesses.
Advanced
Needs a team, real planning, and a supervisor who knows the area.1 semester · 2 to 3 students
7 to ship
3 optional extrasSuggested stack
What you should ship
- A collector that reads per-container CPU, memory, throttling and OOM kill metrics from Prometheus and stores daily summaries per workload
- A recommendation engine using usage percentiles with a stated headroom policy, separate rules for CPU and memory, and a confidence level based on data age
- A waste report that converts requested minus used resources into money using published node pricing, per namespace and per team
- A risk report that flags workloads with frequent throttling, memory near limits or OOM kills, and refuses to recommend cuts for them
- A web dashboard with per-workload usage graphs, current against recommended settings, and a one-click YAML patch to copy
- An evaluation cluster running at least 6 realistic workloads with daily and bursty patterns
- A written experiment applying recommendations to a subset and reporting savings and any degradation
If you have time left
- Applying recommendations automatically behind an approval step, as a pull request to the manifests repository
- Seasonality handling for workloads with strong daily or weekly cycles
- Trend detection that warns when a workload will outgrow its settings within a set number of weeks
The problem with guessed resource requests
In Kubernetes every container declares how much CPU and memory it requests, and the scheduler packs nodes based on those numbers, not on real usage. Requests are usually set once, copied from a template or a guess, and never revisited. Set too high, the cluster looks full while nodes sit mostly idle and the company pays for capacity nobody uses. Set too low, containers get CPU throttled or killed for running out of memory under load.
Startups and small platform teams feel this most. The cloud bill grows, nobody owns the numbers, and changing them feels risky because nobody knows which service will fall over.
What already exists and the gap
- Vertical Pod Autoscaler (VPA) has a recommender that studies historical usage and produces target, lower and upper bound recommendations, and can apply them by evicting pods or updating them in place.
- Goldilocks from Fairwinds creates a VPA in recommendation mode for each workload and shows the suggestions in a dashboard.
- KRR from Robusta is a command line tool that reads Prometheus and recommends CPU at the 95th percentile and memory at the recent maximum plus a buffer.
- OpenCost gives visibility of Kubernetes spend by cluster, namespace and pod.
Each covers one part: recommendations, or cost, or a dashboard. What a small team actually needs in one place is the recommendation, what it saves in money, and an honest statement of risk for each workload, with the reasoning shown. This project builds that and, more importantly, measures whether following the advice is safe.
What you build
- Collector: pulls container metrics from Prometheus (CPU usage, throttled periods, working set memory, OOM events) and writes daily per-workload summaries to PostgreSQL.
- Recommender: computes percentiles over a window, adds headroom, and labels each recommendation with confidence and risk.
- Cost model: converts CPU cores and gigabytes into money from published instance prices for your chosen provider, with the method written down.
- Dashboard: namespaces, workloads, graphs, current against recommended, and a YAML patch the engineer can copy into a pull request.
The technically interesting part
Percentiles, not averages, and different rules for CPU and memory. A workload averaging 200 millicores and peaking at 2 cores will be throttled constantly if you size for the average. CPU is compressible: going over means slowdown. Memory is not: going over means the container is killed. So CPU can be sized to a high percentile with a burst allowance, while memory must cover the observed peak plus headroom. Explaining and defending that policy, and comparing it with what VPA and KRR choose, is the analytical core.
The second part is the risk side. A tool that only cuts requests will eventually cause an outage. Detect workloads with throttling, memory close to the limit, too little history, or rising trends, and refuse to recommend a cut for them. Examiners will ask about this first.
How to evaluate it
- Savings: total requested against recommended CPU and memory, and the projected monthly cost difference, with your pricing method shown.
- Safety experiment: apply recommendations to half the workloads for two weeks under generated load; report throttling, OOM kills and p95 latency against the control half.
- Comparison: run VPA and KRR on the same cluster and explain where your recommendations differ and why.
- Honesty: if a recommendation caused an incident, report it. That is a stronger result than a claim of pure savings.
Suggested plan
- Weeks 1 to 2: set up a k3s or kind cluster, Prometheus, and six sample workloads with different load shapes.
- Weeks 3 to 5: collector and storage, first percentile reports.
- Weeks 6 to 8: recommender, risk rules and cost model.
- Weeks 9 to 10: dashboard and YAML patch output.
- Weeks 11 to 14: safety experiment, comparison with VPA and KRR.
- Week 15: report and demo.
Path to a product
The first user is a startup running a small Kubernetes cluster whose cloud bill worries the founder. Offer a free two-week report in exchange for permission to publish anonymised results. From there, consulting engagements (right-sizing audits) are more realistic than a SaaS in a space with established tools. As open source, the risk-first recommender is a strong portfolio piece for platform and FinOps roles.
Scope warning
Recommendations only. Automatic enforcement is a stretch goal for good reason. Do not support multiple clouds, do not rebuild a metrics pipeline, and do not attempt node pool or instance type recommendations in version one.
Learn what you need on Sefism
- DevOps and cloud roadmap : Kubernetes, monitoring and cost basics in order.
- DevOps and cloud cheat sheet : requests, limits and kubectl commands at a glance.
- OpenIntro Statistics : percentiles and distributions behind the recommender.
- PostgreSQL Documentation : storing and aggregating daily usage summaries.
- AWS Architecture Blog : cost optimisation patterns from real deployments.
Get help with this idea
The hard parts here are getting realistic load onto a student cluster and writing a risk policy you can defend. Tauseef can help you shape the workloads, the evaluation and the scope so you finish with real numbers. If you are new here, create a free account first.
Ideas and guidance, not finished projects
These are project ideas and scoping guidance, published free for students to use as a starting point. I do not build, write, or sell final-year projects, and I do not complete coursework for anyone. Take an idea, make it yours, and build it.
Not sure this one fits you?
I help students pick an idea that matches their skills and their deadline, then scope it down until it is finishable. Guidance only, never done for you.
Stuck on something specific?
Writing only gets you so far. If you want an answer to your situation rather than the general case, book a session and we will work through it together. Sessions are free for approved Sefism members, and a few slots open each week.
Follow along
New writing, resources and project ideas land here first.