Using HorizontalPodAutoscaler Without Metrics Adapter

In this lesson, we will see what are the limitations of using HPA without metrics adapter and the data available in Metrics Aggregator.

Limitations of using HPA without metrics adapter #

If we do not create a Metrics Adapter, Metrics Aggregator only knows about CPU and memory usage related to containers and nodes. To make things more complicated, that information is limited only to the last few minutes. Since HorizontalPodAutoscaler (HPA) is just concerned about Pods and containers inside them, we are limited to only two metrics. When we create an HPA, it will scale or descale our Pods if memory or CPU consumption of the containers that constitute those Pods is above or below predefined thresholds.

Metrics Server periodically fetches information (CPU and memory) from Kubelets running inside worker nodes. Those metrics are passed to Metrics Aggregator which, in this scenario, does not add any additional value. From there on, HPAs periodically consult the data in the Metrics Aggregator (through its API endpoint). When there is a discrepancy between target values defined in an HPA and the actual values, an HPA will manipulate the number of replicas of a Deployment or a StatefulSet. As we already know, any change to those controllers results in rolling updates executed through the creation and manipulation of ReplicaSets, (which create and delete Pods), which are converted into containers by a Kubelet running on a node where a Pod is scheduled.

Get hands-on with 1000+ tech skills courses.