Scaling¶
Use this checklist when demand is rising but replicas, nodes, or scheduling capacity are not catching up fast enough.
Main Content¶
flowchart TD
A[Scaling symptom] --> B[Check Pending pods and HPA]
B --> C[Check cluster autoscaler decisions]
C --> D[Check node-pool growth lag]
D --> E[Check storage or admission blockers] - Confirm whether the pressure is replica-level, node-level, or both.
- Check for unschedulable pods before changing autoscaler limits.
- Query cluster-autoscaler logs to see whether AKS refused to grow or never saw a valid scale-up path.
- If pods are pending because of PVCs or webhooks, treat those blockers first.
kubectl get hpa --all-namespaces
kubectl get pods --all-namespaces --field-selector=status.phase=Pending
kubectl describe hpa <hpa-name> --namespace <namespace>
kubectl get events --all-namespaces --sort-by=.lastTimestamp
az aks show --resource-group "$RG" --name "$CLUSTER_NAME" --query "agentPoolProfiles[].{name:name,count:count,min:minCount,max:maxCount}" --output table
| Command | Purpose |
|---|---|
kubectl get hpa | List HorizontalPodAutoscalers across namespaces. |
kubectl get pods | List pending pods awaiting scheduling. |
kubectl describe hpa | Show HorizontalPodAutoscaler status and events. |
kubectl get events | List Kubernetes events for troubleshooting. |
az aks show | Show autoscaler bounds per node pool. |
--resource-group | Resource group that contains the AKS cluster. |
--name | Name of the AKS cluster. |
--query | Selects per-pool count, min, and max. |
--output | Output format for the result. |