Kubernetes autoscaling has two control loops that can move at different times.
| Control loop | Changes |
|---|---|
| Workload scaling | Desired replica count |
| Node scaling | Machine capacity available to place those replicas |
The workload loop can ask for more Pods even when the cluster has nowhere to place them. Those Pods remain Pending until suitable machine capacity appears.
The Horizontal Pod Autoscaler (HPA) changes workload replica demand from metrics. Kubernetes Event-driven Autoscaling (KEDA) can feed external or event-driven demand into that loop. A node autoscaler changes the cluster’s machine capacity; Karpenter is one implementation.
That sequence matters during incidents: a rising replica target does not create capacity until the scheduler can place the new Pods.
In this chapter
- Workload versus node autoscalingPlace HPA, KEDA, Kubernetes scheduling, and Karpenter in one control flow.
- Cloud Run, GKE, Vertex AI and EKSChoose compute from workload lifecycle, control requirements and accelerator limits.