Goldilocks logo

Cloud-native infrastructure solutions provider Fairwinds announced a new open-source tool for Kubernetes resource management this week. Goldilocks is designed to give users recommendations on how to best set their resource requests. 

“Today, Kubernetes users have no easy way to determine the resource requests and limits for their workload and often don’t set them at all. This can lead to issues with cluster stability,” said EJ Etherington, CTO at Fairwinds. “With our latest open source tool we make it easy to empirically determine those values anytime a new application is deployed into a cluster saving you time, and improving resource utilization and cluster stability.”

Resource requests and limits are used in Kubernetes to control CPU and memory resources as well as make sure workloads are schedules on nodes, according to the company. Requests are used to define resources where a container is guaranteed, and limits refer to where sources will be restricted. “Requests must be set so that applications have enough CPU and memory to run as expected; at the same time, limits must be set to ensure that applications are not taking up more than their share of resources to the detriment of other applications. Kubernetes provides the ability to set default Namespace settings for requests and limits, but to ensure clusters remain stable, settings should match the unique requirements of each application,” the company wrote in an announcement. 

To get Goldilocks to provide recommendations, the team leverages the Vertical Pod Autoscale (VPA). It contains a recommendation engine and also takes into account current resource usage. The project will provide two types of recommendations depending on the three levels of QoS classes: guaranteed, burstable or best effort. Fairwinds does not recommend best effort, which is where resource requests or limits are not set. 

“The Goldilocks dashboard will give you recommendations for both the Guaranteed and Burstable QoS classes. These are generated by different values from the VPA recommendation field. In the Guaranteed class, we suggest you set your requests and limits to the VPA “target” field. In general, we use this value along with the Horizontal Pod Autoscaler to allow our applications to scale. The Burstable class recommendation is taken from the VPA LowerBound and UpperBound fields,” Andy Suderman, leader SRE at Fairwinds, wrote in a post.