Urgent.News

What's breaking now, across thousands of outlets.

Tech

Why Your Kubernetes HPA Won't Scale Down (It's Probably Not Stuck)

You scaled up under load, traffic dropped ten minutes ago, and your HPA is still sitting at 8 replicas instead of 2. First instinct: something's broken. Second instinct, after kubectl describe hpa shows nothing wrong: confusion. It's probably not stuck. It's doing exactly what it's configured to do — you just never configured it. The default nobody sets on purpose If you don't define a…

Your Kubernetes Horizontal Pod Autoscaler (HPA) isn't scaling down because it's likely not configured to do so. The default behavior is a 300-second stabilization window, which prevents Kubernetes from removing replicas when metrics briefly dip below the target. This isn't a bug, but a deliberate measure to avoid rapid scaling changes, or "flapping." However, this window resets each time a metric sample exceeds the target, making it seem like the HPA is stuck in a scale-down state, especially with noisy CPU metrics.

The solution is to explicitly define the scale-down settings in your HPA configuration. By specifying a stabilization window of 120 seconds and a policy that caps the rate of replica removal, you create a scale-down window that aligns with your expectations. This way, you won't have to guess whether 300 seconds equals 300 seconds or 300 seconds from the last metric spike.

To illustrate this, I've created a minimal, runnable example with a demo Deployment, an HPA with a properly configured scale-down block, and a load generator script. You can view the full breakdown at github.com/polasamy-eng/devsaas-devops-examples — specifically, the kubernetes-hpa-scaling-demo folder. It demonstrates how the HPA behaves when the scale-down settings are explicitly defined, helping you distinguish between a genuinely stuck HPA and one that's just conservatively or accidentally configured.

Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at dev.to →

More in Tech

Pytalon Assistant Success, A New Era for Non-AI Assistants

Are you expecting another release of Pytalon that either contains new features or bug fixes and polishes? Well, today and this week wasn't supposed to be that.

  • Pytalon 2.3 Assistant achieves 543 clones on September 23rd, setting new peak.
  • First assistant in series to reach such high number of clones and unique clones.
  • Pure-Python, zero-dependency terminal assistant designed for programming tutoring.

I Built ShellSSH: A Different Take on SSH Clients Like Termius, Termux and PuTTY

SSH itself doesn't need reinventing. The workflow around SSH might. For years, my typical server workflow looked something like this: Find server credentials ↓ Open SSH client ↓ Connect ↓ Need a file?

  • ShellSSH is an SSH and server-management app for Windows and Android
  • Focuses on server-centric workflow, unlike broader Termius
  • Addresses server availability, file access, and identity management

Polly v8 Rewrote Itself From Scratch. Here's What Actually Changed

Polly showed up briefly in an earlier post on modernising a legacy enterprise codebase on this blog, wiring resilience into a set of external calls that used to fail with nothing but a bare try/catch.

  • Polly v8 introduces a ResiliencePipeline built from named strategies
  • Strategies configured through their own options type and added to pipeline
  • TimeProvider allows custom clock for time-based strategies in v8

Zig 0.17 Split Its Build Into Two Processes: Why That Matters

The most important change in Zig 0.17.0 is not a language feature. It is the build system being split into two separate executables: one that evaluates your build.zig script (the configurer), and one…

  • Zig 0.17.0 splits build system into configurer and maker processes
  • Configurer generates compact binary serialization of build graph
  • Maker consumes serialization to execute build steps

Google Play's API 36 deadline passed — here's the extension and the upgrade checklist

On August 31, 2026, Google Play stopped accepting new apps and app updates that don't target Android 16 (API level 36). If you haven't upgraded yet, you're not reading a warning about the future…

  • Google Play stopped accepting apps for API levels below 36 on August 31, 2026
  • Extension available until November 1, 2026 for late upgrades
  • Apps on lower API targets will become uninstalable on newer devices

More from Saturday 3 October →