Updated 26 October 2026 · Published by Zoorik
HPA in Kubernetes stands for Horizontal Pod Autoscaler. It changes the number of pods in a workload, such as a Deployment, to match demand. It can’t scale a DaemonSet.
Horizontal means more pods, not bigger ones. VPA vs HPA compares it with vertical scaling.
How the HPA decides
- It needs a metrics source, such as Metrics Server.
- It checks its metrics every 15 seconds by default.
- A CPU utilization target is a percentage of each pod’s CPU request. If any container has no CPU request, the HPA takes no action on CPU.
- By default, it adds up to 4 pods or doubles the count per 15 seconds, whichever is more.
- To scale down, it uses the highest count from the last 5 minutes.
The Horizontal Pod Autoscaler on EKS is built in, so there’s nothing to install. EKS lists Metrics Server as a prerequisite.
An example from the Kubernetes docs
In the HPA walkthrough, each php-apache pod requests 200 millicores (200m) of CPU. The HPA targets 50% average CPU utilization. So it aims for 100m of use per pod.
If average use reached 200m, twice the target, the HPA would double the pods.
Why it matters for your cloud cost
- At a 50% target, each pod’s request is twice its target use.
- Node autoscalers add nodes to fit pods’ requests, not their real use.
- When new replicas don’t fit, you pay for nodes sized to those requests.
Coral works with your HPA. For a CPU-utilization HPA, it picks the CPU request by replaying past load through that HPA’s own settings.
The free assessment works out your own figure.
Read next: VPA vs HPA
Sources: Kubernetes, “Horizontal Pod Autoscaling” (opens in a new tab); Kubernetes, “HorizontalPodAutoscaler Walkthrough” (opens in a new tab); Kubernetes, “Node Autoscaling” (opens in a new tab); Amazon EKS, “Scale pod deployments with Horizontal Pod Autoscaler” (opens in a new tab).