Quick reference
Controller not scaling nodes
-
Check if a NodeScalingPolicy exists:
-
Check the policy status:
Look at
status.conditionsfor error messages andstatus.lastScaleAction. -
Check controller logs:
Look for:
"failed to evaluate scaling"— metric collection or evaluation errors"cooldown active"— scaling is blocked by the cooldown period"dry-run mode"— scaling is blocked by the dry-run setting
-
Verify GKE credentials:
Ensure
GKE_PROJECT_ID,GKE_LOCATION, andGKE_CLUSTER_NAMEare set. -
Verify Prometheus connectivity:
Pods not rebalancing
-
Check if a RebalancePolicy exists:
-
Check the imbalance score — it may be below the threshold:
If all nodes show similar utilization percentages, the cluster is already balanced.
-
Check for PDB conflicts. If
spec.respectPDBistrue(default), pods protected by PodDisruptionBudgets that would be violated are not moved: -
Check
status.lastPlanon the RebalancePolicy for the last analysis result. - Verify the schedule expression is correct — the controller uses standard cron syntax.
Autoscaler not responding to pending pods
-
Check if the autoscaler pod is running:
-
Check autoscaler logs for pending pod detection:
-
Verify the
pendingPodGracePeriod— pods must be pending for at least this duration (default 30s) before triggering a scale-up. -
Check if
maxNodeshas been reached: