The Complete HorizontalPodAutoscaler Flow of Events
Metrics Server is fetching memory and CPU data from Kubelets running on the worker nodes. In parallel,
Prometheus Adapter is fetching data from
Prometheus Server which, as you already know, pulls data from different sources. Data from both Metrics Server and
Prometheus Adapter is combined in Metrics Aggregator.
HPAis periodically evaluating metrics defined as scaling criteria. It’s fetching data from Metrics Aggregator, and it does not really care whether they’re coming from
Prometheus Adapter, or any other tool we could have used.
Once scaling criteria are met,
HPA manipulates Deployments and StatefulSets by changing their number of replicas. As a result, rolling updates are performed by creating and updating ReplicaSets which, in turn, create or remove Pods.