HPA

A HorizontalPodAutoscaler updates a workload (either a Deployment or StatefulSet) to scale it in line with demand. It achieves this by scaling the number of Pods either up or down according to a configured metric.

Implementation

An HPA resource provides configuration consumed by the HPA Controllers, which will periodically resize workloads (configured by p.r.comp.cloud.cncf.kubernetes.controller-manager (Private)'s --horizontal-pod-autoscaler-sync-period parameter; every 15 seconds by default).

Once during each period the controller manager:

  1. Identifies each HPA's associated resource by finding the entity referenced in its scaleTargetRef.
  2. Identifies the resource's related pods via its .spec.selector.
  3. Checks each Pod's metrics.

Multiple metrics Take the highest value