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.
Once scaling criteria is 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.