Cloud & platform

Kubernetes FinOps in 2026: scale to zero, resize in place, and know who pays

Two recent Kubernetes releases quietly changed the cost conversation. Here is the playbook I use to turn them into a lower bill, without trading away reliability.

PlaybookSumanta Mukhopadhyay8 min read5 sources
#kubernetes#platform#finops#cloud
PLAYBOOK · CLOUD & PLATFORM18 Oct 2026 · 20:15 GST

Most Kubernetes bills I review have the same shape: a lot of capacity reserved for peaks that rarely come, workers idling overnight, and nobody quite sure which team owns which share. Two features from this year's releases make two of those problems much easier to fix. The third, ownership, is still a people problem.

What changed this year

Kubernetes v1.37 release logo
Kubernetes v1.37 brought HorizontalPodAutoscaler scale-to-zero into core Kubernetes as a beta feature. Source: Kubernetes project, Kubernetes v1.37 release · CC BY 4.0
FeatureReleaseWhy it matters for cost
In-place resize for pod-level resources (beta)v1.36Grow or shrink a pod's shared CPU and memory pool without recreating it2
HPA scale to zero (beta)v1.37Remove the last idle pod for queue consumers and batch workers, without an add-on1

Scale to zero: where it pays, and where it bites

The Kubernetes post is clear about the mechanics. CPU and memory metrics come from running pods, so once you reach zero there is nothing left to measure. Scaling from zero therefore needs an object or external metric, such as a queue length, that exists independently of the workers1.

It is just as clear about the trade-off: cold starts. The autoscaler has to see the metric, schedule a pod and start the application. And Services do not buffer requests while no pods are ready, so request-driven HTTP workloads need a separate buffering layer1.

My rule: scale to zero where work can wait in a durable queue. Queue consumers, report generators, document processors and nightly jobs are ideal. User-facing APIs are not, unless you add buffering and accept the latency.

The savings are largest where each pod reserves expensive capacity, such as dedicated CPUs or GPUs1. That makes this especially relevant for AI workloads: embedding pipelines and batch inference workers that sit idle between jobs.

Resize in place instead of over-provisioning

Teams over-provision because changing resources used to mean restarting pods. In-place resize weakens that excuse. With pod-level resources, containers without their own limits share a pool, and from v1.36 you can resize that pool on a running pod. The kubelet applies it without a restart where the container's resize policy allows, and reports a pending condition if the node cannot fit the change2.

In practice I use this to set requests closer to real usage and resize during known peaks, rather than reserving the peak all day. Treat it as a tool for planned changes first. Automating it well needs good metrics and conservative policies.

Allocation first, optimisation second

None of this sticks without ownership. The FinOps Framework organises the work into inform, optimise and operate phases, and starts with making costs visible and attributable5. On Kubernetes that means allocating cluster cost to namespaces, workloads and labels, including the cost of idle capacity.

OpenCost is the open-source option I reach for. It pairs a cost allocation engine with a community specification for Kubernetes cost monitoring, and it is a CNCF incubating project34. Once every team sees its own number each week, optimisation stops being a platform-team crusade.

The playbook

  1. Label everything with team, product and environment. Enforce it at admission so unlabelled workloads can't be deployed.
  2. Turn on allocation and publish a weekly cost per team, including their share of idle capacity.
  3. Find the idle workers. Queue consumers and batch jobs that run around the clock are your first scale-to-zero candidates.
  4. Move them to queue-based scaling on an external metric, then let them scale to zero. Measure cold-start impact before and after.
  5. Right-size requests using real usage, and use in-place resize for planned peaks instead of permanent headroom.
  6. Put GPUs on a short leash. Dedicated GPU pools with scale-to-zero for batch inference, and a clear owner for every GPU node.
  7. Track unit cost: cost per transaction, per tenant or per thousand AI requests. A falling unit cost is the only number that proves the work.

What not to cut

Cost work goes wrong when it eats into reliability. I protect three things: headroom for the critical user path, redundancy across zones for anything customer-facing, and the observability needed to see what the changes did. Saving money and causing an outage is not a win.

Unit cost is also a useful lens in due diligence. A company that can tell you its cost per customer and how it falls with scale is usually in control of its platform. I cover more of this in my technical due diligence work.

How I can help

I run short platform and cost reviews that end with an allocation model, a list of safe savings and a plan to keep them. As a fractional CTO I also help teams build the habits that stop the bill creeping back. Or analyse your challenge first and bring the result to a call.

References
  1. 1
  2. 2
  3. 3
    OpenCost FAQOpenCost project
  4. 4
  5. 5
FAQ

Common questions

Can Kubernetes scale a deployment to zero without add-ons?

Since Kubernetes v1.37, the HorizontalPodAutoscaler can scale a workload to zero and back when it uses a suitable object or external metric, such as queue length. CPU and memory metrics don't work for this because they come from running pods.

What is in-place pod resize?

It lets you change a running pod's CPU and memory without recreating it, where the container's resize policy allows. Kubernetes v1.36 extended this to pod-level resources, which suits pods with sidecars that share a resource pool.

Where should a Kubernetes FinOps programme start?

With cost allocation. Until each namespace, team and product has a visible cost, optimisation work has no owner and no way to measure success. Tools such as OpenCost provide this allocation for Kubernetes.

Keep reading

Related

Open to advisory, fractional CTO & select builds

Let's talk about what you're building.

The fastest route is a free 30-minute call. Prefer to write? Send a message and I'll reply personally within two business days.

Start a conversation

How would you like to reach me?

Book a 30-min callFastest. Pick any open slot on my calendar.→ Write in GmailOpens a pre-filled draft in your browser.→ Use my email appOutlook, Apple Mail or your default client.→

I reply personally within two business days. US & UAE time zones.