Autopilot
Scales each Deployment from a model of its own performance, and decides in about 10 seconds where HPA takes about 30.
Traffic jumps, and HPA adds the first Pods about 30 seconds later
kubernetes.io, Horizontal Pod Autoscaling; kubernetes-sigs/metrics-server; Cast AI, 2026 State of Kubernetes Optimization Report
By default, metrics-server collects metrics every 15 seconds, and HPA checks them every 15 seconds. A spike can wait up to 30 seconds before HPA adds the first Pods.
After that, HPA can add at most 4 Pods or 100% of the current Pods every 15 seconds. Going from 10 to 80 Pods takes three increases, the last one 30 seconds after the first.
To avoid that wait, teams keep extra replicas running. Average CPU use across the clusters Cast AI measured was 8% in 2025.
HPA about 30s: up to 15s for metrics-server to collect metrics plus up to 15s for the HPA sync period (kubernetes.io, kubernetes-sigs/metrics-server). HPA scale-up default (100% or 4 Pods per 15s): kubernetes.io. Autopilot about 10s: Autopilot docs. Load and Pod counts are illustrative; for Autopilot, the later steps are illustrative too.
How Wave does it
- cAdvisor in the kubeletreads Pod CPU and memory
- every 15smetrics-serverkeeps the latest value per Pod
- every 15sHPA controllerreplicas = ceil(current × metric ÷ target)
- scaleDeploymentstarts the new Pods
- Wave Agentwith cAdvisor, on every node
- gRPCWave Corekeeps metrics history, applies rules and cooldowns
- historyWave Intelligencea model of this workload, from 14 days of its behavior
- replica countKubernetes APIWave Core sets the replicas
Collect workload metrics
The Wave Agent on every node sends Pod metrics to Wave Core, so Autopilot works from current numbers.
Model each workload
By default, Autopilot trains an ML model on 14 days of the workload's own behavior and learns how many Pods a given load needs (Autopilot docs).
Decide in about 10 seconds
Autopilot combines the model with rules and cooldowns and sets the replica count within about 10 seconds. With no model yet, it scales the way HPA does.
Results
from a load change to a scaling decision, about 2x faster than HPA
Autopilot docs; HPA: kubernetes.io defaults
Interactive Speed Comparison
Click the button to simulate a traffic spike and see when each system decides to scale. Timings are illustrative.
Kubernetes HPA
HPA: Monitoring
Wave Autopilot
Autopilot: Ready
About 20 seconds sooner: Autopilot decides in under 10 seconds and HPA in about 30, so Pods are short for less time during a spike.