{
  "id": 16330904,
  "title": "Why Kubernetes autoscalers keep fighting each other (and why the solution must be autonomous)",
  "url": "https://urgent.news/2026/10/24/why-kubernetes-autoscalers-keep-fighting-each-other-and-why-the",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-10-24T13:00:00.000Z",
  "source": {
    "name": "The New Stack",
    "slug": "the-new-stack",
    "url": "https://thenewstack.io/why-kubernetes-autoscalers-fight/"
  },
  "original_language": "en",
  "account": "Reconciling Kubernetes autoscalers can feel like an SRE trying to determine the ideal number of replicas for a specific application. Their Helm values indicate 3 replicas with CPU at 1000m and memory at 2Gi, yet the live cluster reports 11 replicas due to CPU load, VPA suggesting 350m and 3.1Gi, KEDA recommending 24 due to Kafka lag, and Karpenter provisioning two new nodes based on declared requests. Five differing answers emerge, each controller functioning independently without grasping the full situation. This disjointed approach signifies a fundamental flaw in modern Kubernetes operations. The Unix philosophy, once the backbone of Kubernetes, now presents challenges. Tools like HPA, VPA, KEDA, Karpenter, and GitOps were once intended to work in harmony, each handling a specific aspect of scaling. However, they now act independently, unaware of each other's existence. Four primary conflicts arise from this disjointedness. First, the denominator collapse: HPA and VPA race to scale. HPA calculates replica numbers based on current CPU usage versus declared resource requests. When VPA operates, it reduces CPU requests, shrinking the denominator. A slight increase in traffic then triggers HPA to aggressively scale-out due to high utilization, causing VPA to further reduce requests. This cycle creates a dangerous feedback loop. Second, the multi-writer race condition: HPA versus KEDA. When teams combine queue-based scaling with CPU-based scaling, two controllers attempt to alter the same deployment. If an event queue spikes, KEDA scales up to handle the backlog, while HPA, perceiving low CPU usage, scales down. The API server records conflicting scale events, causing throughput to stall. Third, GitOps drift: declarative infrastructure vs. dynamic reality. GitOps manages the cluster's baseline state from version control. When HPA scales a deployment, Argo CD flags the application as OutOfSync, reverting to its original baseline during peak demand. This breaks the declarative infrastructure, causing GitOps to always reflect the original state instead of the current reality. Lastly, the multiplier effect at the node layer. Node autoscalers like Karpenter allocate nodes based on container requests, not actual usage. If a container requests 1000m CPU but only consumes 150m, the scheduler still reserves the entire core, allocating wasted resources across the cluster. This inefficiency multiplies, causing significant cloud costs. To resolve these issues, a unified autoscaler must be developed. This new autoscaler must handle both horizontal and vertical sizing, considering CPU, memory, queue depth, transaction rates, latency SLO compliance, node pricing, and IaC manifests together. It should compute a single action vector defining both replicas and resource requests simultaneously. Furthermore, it must synchronize GitOps continuously, ensuring the live environment always matches the version-controlled baseline. By unifying these capabilities, Kubernetes can finally achieve efficient, cost-effective autoscaling without the chaos of disjointed controllers.",
  "summary": "Ask an SRE a deceptively simple question: What is the right size for checkout-api, and how many replicas should it The post Why Kubernetes autoscalers keep fighting each other (and why the solution must be autonomous) appeared first on The New Stack .",
  "key_points": [],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}