At Fairwinds, we’ve spent the last few years managing hundreds of clusters for dozens of organizations, which gives us considerable knowledge about and insight into the problems most organizations encounter in their Kubernetes environments. We see the same issues repeatedly, most of them related to getting resource requests and limits just right, so we created Goldilocks to help identify a baseline for setting resource requests and limits. The experience we gained building and using Goldilocks allowed us to build features for Fairwinds Insights that provide even more resource optimization.
There are two types of resource configurations you can set on each container in a pod: requests and limits. While a resource request defines the minimum resources that containers need, a limit defines the maximum amount of resources the container can use. It’s important to set these limits, because they help prevent you from over-committing resources (and also save resources for other deployments). Requests impact how pods are scheduled in Kubernetes; basically, the scheduler reads the requests for each container in your pod and finds the best node that can fit that pod. Kubernetes uses this information to optimize your resource utilization.
Setting your Kubernetes resource requests right is important, but it can be really challenging unless you know what’s happening in your environment. Goldilocks, our open source project, uses Vertical Pod Autoscaler (VPA) in recommendation mode to see a suggestion for resource requests on each app. Goldilocks creates a VPA for each deployment in a namespace, then queries them for information. Goldilocks provides a good starting point, making it easy to look at all recommendations and make decisions about setting your resource requests and limits to better tune your applications to your own unique use cases.
A sample of the Goldilocks dashboard resource recommendations
But for many organizations, Goldilocks doesn't meet all of their needs. In order to better serve our users, we built Fairwinds Insights for organizations that need:
The Fairwinds Insights platform also makes it easy to estimate how much is being spent and how much could be saved on Kubernetes workloads.
Fairwinds Insights offers recommendations to increase the efficiency of your Kubernetes compute resources, and it provides multi-cluster capabilities that Goldilocks doesn't have. For enterprises running multiple clusters, Insights provides visibility to identify where you can save money. If needed, it can also help you prove that your Kubernetes environment is running cost-effectively.
Insights makes it easier for you to research application resources and historical usage, so you can adjust settings that will help you increase the efficiency of your Kubernetes environment. You can also evaluate individual applications to discover opportunities to reduce costs without impacting application performance.
While tracking resource requests and limits is easy to do for a single cluster in Goldilocks, it’s much more challenging as your organization grows to multiple teams and multiple clusters. Fairwinds Insights better enables you to:
This visibility across multiple clusters helps you make the right decisions about resource settings and create and share reports showcasing your then improved alignment with your business’ goals.
Goldilocks does a great job at providing a baseline for setting Kubernetes resource requests and limits. It makes it easy to look at all the recommendations from VPA and make decisions based on historical usage of the pod over time.
Insights provides many additional capabilities. For example, any open source tool can link into Insights, making it simple to normalize data as a whole, improving visibility into your Kubernetes deployment by pulling data from multiple sources together into a single view. It puts all the findings from other tools right next to Goldilocks, so you can make a better decision about how you want to set your requests and limits.
Insights is built using multiple open source tools, which provides capabilities beyond what Goldilocks alone can offer, including the ability to:
Insights also provides additional resource metrics that we pull from Prometheus. Fairwinds Insights can apply the benefits of Goldilocks and these other excellent tools across multiple clusters and teams in a way that is consistent across your entire organization.
Goldilocks is great at what it does. It helps you get a baseline for setting Kubernetes resource requests and limits and get recommendations on where you can make changes. We continue to make updates to Goldilocks and we encourage participation in our open source user group to help us determine the direction of the project.
Fairwinds Insights is a platform that provides visibility across multiple clusters, and because it incorporates multiple open source projects, it delivers more useful and actionable information for the overall efficiency and reliability of your Kubernetes environment. Our integrations in the Insights platform make it easy to view your Goldilocks results alongside other auditing tools and resource metrics.
Both Goldilocks and Insights can help you evaluate your resource requests and limits, while Insights also helps you identify and remediate issues with security, efficiency, and reliability in Kubernetes. Organizations that are early in their Kubernetes journey will likely want to start with Goldilocks, but once you’re operating multiple clusters across multiple teams, Fairwinds Insights can help provide consistency and governance to minimize risk and keep your clusters running efficiently, reliably, and cost-effectively.