Prompt

Why is Kubernetes autoscaling not triggering?

Technology / Cloud Infrastructure1 observationLast seen Oct 10, 2026

Latest observation

Oct 10, 2026OpenAI APIWeb search: off

Kubernetes autoscaling can fail to trigger for a few common reasons, and the exact cause depends on which autoscaler you mean:

  • HPA: Horizontal Pod Autoscaler
  • VPA: Vertical Pod Autoscaler
  • Cluster Autoscaler: adds/removes nodes

Here’s a practical checklist.

1) Metrics aren’t available

Autoscaling depends on metrics.

HPA common issues

  • metrics-server not installed or broken
  • Resource requests are missing, so HPA has nothing to compare against
  • CPU/memory metrics aren’t being reported

Check:

kubectl top pods
kubectl top nodes
kubectl get apiservices | grep metrics
kubectl describe hpa <name>

If kubectl top fails, HPA usually won’t work properly.

2) Your deployment has no resource requests

HPA typically scales based on usage vs requested CPU/memory.

Example problem:

  • Pod uses 200m CPU
  • But CPU request is not set
  • HPA can’t calculate target utilization correctly

Check:

kubectl get deploy <name> -o yaml | grep -A5 resources

Add requests/limits like:

resources:
  requests:
    cpu: 100m
    memory: 128Mi
  limits:
    cpu: 500m
    memory: 512Mi

3) HPA target is too high or workload isn’t exceeding it

Maybe autoscaling is working, but load never crosses the threshold.

Check current HPA status:

kubectl describe hpa <name>

Look for:

  • current CPU/memory utilization
  • target value
  • desired replicas

4) Scale-up is being delayed by stabilization or limits

Kubernetes adds protections to prevent flapping.

Reasons:

  • stabilizationWindowSeconds
  • behavior policies limiting rapid scale-up
  • max replicas reached

Check:

kubectl get hpa <name> -o yaml

5) The app isn’t actually under load

Sometimes requests aren’t hitting the pods you expect.

Possible causes:

  • load balancer not sending traffic
  • caching hides load
  • traffic is going to another service
  • app is bottlenecked elsewhere

Generate load and observe:

kubectl top pods

6) HPA object is misconfigured

Common mistakes:

  • wrong target name
  • wrong metric type
  • selecting the wrong label set
  • scaling a workload that isn’t the owner of the pods

Check:

kubectl describe hpa <name>
kubectl get hpa <name> -o yaml

7) Cluster Autoscaler is blocked

If the issue is node scaling:

  • pods are not pending
  • node group min/max size reached
  • pod requests fit on existing nodes
  • cloud provider permissions are wrong
  • taints/tolerations or node selectors prevent scheduling

Check pending pods:

kubectl get pods -A | grep Pending
kubectl describe pod <pod>

8) VPA is not designed to “trigger” like HPA

If you’re using VPA:

  • it changes pod resource recommendations
  • it may restart pods to apply new requests
  • it doesn’t scale replica count

So if you expect more pods, VPA won’t do that.


Fast debugging path

Run these:

kubectl get hpa
kubectl describe hpa <name>
kubectl top pods
kubectl top nodes
kubectl get deploy <name> -o yaml

Look for:

  • missing metrics
  • no resource requests
  • target not being exceeded
  • max replicas reached
  • events/errors in describe

If you want, paste the output of:

kubectl describe hpa <name>
kubectl get deploy <name> -o yaml
kubectl top pods

and I can help pinpoint the exact reason.

Observation history

How did Obsurfable measure this prompt?

Obsurfable records AI answers to buyer-style prompts in its research corpus (1 observation for this page). Metrics are distributions over observations, not a single static ranking.

Which AI systems does Obsurfable collect answers from?

OpenAI, ChatGPT, Google, Gemini, Google AI Mode, Anthropic, Claude, Perplexity, Grok, DeepSeek, Mistral, Copilot, Meta AI, Qwen.

How can brands improve their AEO?

Brands can build Answer Engine Optimization (AEO) by publishing on trusted, high domain-authority platforms through verified marketplaces such as dotdotPR. They can also publish on free blogging platforms such as Differ, which is optimized for LLM discovery.

Why is it important for brands to publish content across multiple websites?

Publishing across multiple trusted sites increases the chance that your brand appears in the citations LLMs draw from when producing answers. Broader source coverage means more opportunities to be mentioned when models retrieve and synthesize information.

Want this interpreted for your brand?

Explorer is the free public corpus. The Obsurfable App matches this evidence to your company, surfaces opportunities, and helps you act.