Kubernetes is now the industry standard for orchestrating containerized workloads, but efficient resource management remains a challenge for many organizations. It’s important to get right though! Over-provisioning leads to wasted cloud spend, while under-provisioning risks instability, throttling, or outages. When we first open-sourced Goldilocks in October 2019, our goal was to offer a dashboard utility to help you identify a baseline for setting Kubernetes resource requests and limits. Since then, we continue to use it in our Managed Kubernetes-as-a-Service offering and it’s built into our Fairwinds Insights software. Because it’s open source, everyone else has the opportunity to use it to get resource requests and limits just right, and they do! People regularly download and use Goldilocks because it fills a common need in the Kubernetes community.
Kubernetes allows you to set resource requests (the CPU/memory a container needs) and limits (the maximum it can use) for every container in a pod. These settings are crucial, because if they are set:
No one wants either of these outcomes. But without some guidance on requests and limits, many teams guess these values, setting them high “just in case,” or leave them unset—leading to performance issues, resource contention, and unpredictable costs. Kubernetes best practices dictate that every workload should have carefully chosen requests and limits, but knowing what values to use is really difficult, especially if you’re new to K8s.
We created Goldilocks to solve this exact problem, which we kept seeing come up with our managed services clients. Goldilocks is a Kubernetes controller and dashboard that leverages the Vertical Pod Autoscaler (VPA) in recommendation mode to analyze historical pod resource usage and suggest optimal CPU and memory requests and limits.
Goldilocks provides recommendations for two key Kubernetes QoS classes:
We don’t recommend using the BestEffort QoS. This applies to pods that don’t meet the criteria for Guaranteed or Burstable, meaning there are no memory or CPU requests or limits set for containers in the pod, although they can request other resources.
The dashboard displays recommendations for each deployment, showing:
As VPA collects more data, recommendations become more accurate. You should regularly review and adjust your settings to continuously optimize your requests and limits.
Never leave these unset—doing so risks cluster instability, resource contention, and unpredictable costs. Use Goldilocks to establish a data-driven baseline that you can refine over time. Consider whether limits are right for your workloads – in general, we recommend them as well, but there are tradeoffs for some workloads.
When using HPA (scaling on cpu/memory) and VPA together, run VPA in “recommendation” mode only (disable the updater) to avoid conflicts and disruptive pod restarts.
Implement monitoring and alerting to track resource usage, spot anomalies, and validate that your workloads are running efficiently. Use tools like Prometheus, metrics-server, and Goldilocks itself.
Workload patterns change over time. Schedule regular audits of your resource settings, especially after major application updates or traffic shifts.
Liveness proves and readiness probes ensure Kubernetes can detect and recover from unhealthy containers, improving reliability and uptime.
Use node selectors, affinities, topologySpreadConstraints, taints, and tolerations to ensure critical workloads get the resources and isolation they need.
Keep resource allocation decisions documented and leverage automation (GitOps workflows) to maintain consistency and enable rapid recovery.
In 2025, Goldilocks is still a great open source tool for Kubernetes teams seeking to balance cost, performance, and reliability. By enabling the analysis of historical resource usage and surfacing clear, actionable recommendations, it helps teams to set resource requests and limits “just right”—no more, no less. Using Goldilocks makes it easier for teams to follow Kubernetes best practices, helping you make your clusters more efficient, resilient, and cost-effective.
Want Kubernetes infrastructure built and managed so you can focus on your business differentiators, not your infrastructure? Check out Fairwinds Managed Kubernetes-as-a-Service.