Skip to main content

The $50K 'Skip Kubernetes' Claim, Audited Against Owned Hardware

10 min readDora NodaDora Noda
Share
On this page

Skipping Kubernetes saves you $50,000 a year. That is the claim from development side's March 2026 essay, and it revived Hacker News' favorite perennial debate with something the debate usually lacks: a concrete dollar figure. The number is specific enough to audit, so this post audits it — line by line, managed control plane versus owned hardware — and the verdict is that both sides are right about different workloads.

Here is the whole audit in one table, workload-normalized to the same small footprint (3 control-plane nodes plus 6 workers) before anyone's ops time enters the picture:

Annual cost, same footprintManaged Kubernetes (GKE/EKS class)Owned CAPH fleet (Hetzner)
Control plane~$876/yr ($0.10/hr per cluster)~$0 (control plane runs as pods)
6 worker nodes, 2 vCPU / 4 GB~$1,800–3,600/yr~$340/yr (6 × CX22 at ~€4.35/mo)
Load balancer + egress extras~$300–600/yr~$60–120/yr
Infra total~$3,000–5,000/yr~$400–500/yr

The infrastructure delta is roughly one order of magnitude — but it is single-digit thousands, not fifty. The $50K lives almost entirely in the line this table excludes on purpose: people time. Which means the real question was never "is Kubernetes expensive" but "whose engineers pay the operating tax, and over how many tenants is it amortized?" Answer that and the claim inverts exactly where a self-hosted PaaS lives.

What the $50K claim actually says

The essay — "You Don't Need Kubernetes (And It's Costing You $50K/Year)", published March 2026 — scopes itself honestly: it is addressed to most startups with fewer than 50,000 users. The author's concrete datapoint is a migration from Kubernetes to Render that saved $3,800 a year and, by their account, quadrupled feature shipping speed. The $50K headline is the extrapolated cost of operating Kubernetes you do not need: managed cluster bills plus the engineering hours spent feeding YAML to a system whose payoff (self-healing multi-service orchestration at scale) never arrives for a three-service app.

Name the workload assumption explicitly, because everything turns on it: a single service (or a couple), bursty traffic, a small team, no platform group. Against that shape, the essay's advice is downstream of a decade of HN consensus — from "Maybe You Don't Need Kubernetes" through December 2024's "I Didn't Need Kubernetes, and You Probably Don't Either" — and its sibling datapoints from the same month rhyme: one March 2026 piece reports "Kubernetes Cost Us $240K/Year. Docker Compose Cost Us $400/Month. Same App." for a 50K-user, 8-engineer setup. The pattern is consistent: a small team running managed Kubernetes for a workload that fits on a handful of servers pays most of the tax and gets little of the benefit.

So far, so fair. The audit starts when we ask what the money actually buys.

What $50K buys on managed Kubernetes

Start with the only line item with a sticker price: the control plane. In 2026, EKS and GKE both charge a flat $0.10 per cluster per hour — about $73 a month, or $876 a year — regardless of cluster size or topology. GKE softens this with a $74.40/month billing-account credit that effectively covers one zonal Standard or Autopilot cluster. AKS is the outlier: its Free tier charges nothing for cluster management (no SLA), Standard is $73/month for the uptime SLA, and Premium is $438/month per cluster. (SquareOps 2026 comparison, LeanOps pricing analysis.)

Notice what this means: the control-plane fee cannot be the $50K. One cluster costs under $1,000 a year to have exist. The managed bill that hurts is everything around it:

  • Node-pool compute at cloud retail. Managed node VMs cost several times what the same vCPU and RAM cost on budget bare-metal clouds, and small teams chronically overprovision them — CNCF's 2025 overspend figures put waste at $40K–80K a year for 50–100 node fleets that never rightsize.
  • The metered extras. NAT gateways, load balancers, and cross-AZ traffic are individually small and collectively relentless; AWS's higher NAT and LB fees are a measurable part of why EKS lands ~$3K/month above AKS at 200 nodes in LeanOps' 2026 modeling ($46K vs $43K/month all-in).
  • The per-pod premium. GKE Autopilot bills per pod resource request rather than per VM, which wins below ~60% utilization and loses above it — at 200 nodes Autopilot is the priciest of the four at ~$52K/month. Bursty single-service workloads sit exactly in the zone where neither billing mode is cheap.

Add it up for the essay's workload and honest infrastructure lands around $3,000–5,000 a year — the table up top. To reach $50K you need the people line: a fifth of a $200K platform engineer's year spent on cluster care is $40K by itself. The claim is best read as "Kubernetes you don't need costs you an engineer's part-time attention," with the infra bill as the receipt and the salary line as the purchase. That reading is also what makes the claim falsifiable in the other direction: change who pays the operating tax, and the arithmetic flips.

The same workloads on owned CAPH hardware

Now re-price the identical footprint on hardware whose operation you own: a Cluster API fleet on Hetzner via the Cluster API Provider Hetzner (CAPH), maintained by Syself with the community. Two structural differences do all the work.

First, the control plane stops being a billed SKU. On CAPH the control plane is a set of pods (or lightweight VMs) you schedule like anything else — k0s-style single-binary distributions and k0smotron-style in-cluster control planes push this to its limit — so the $876/year managed fee simply has no counterpart. You still pay the underlying compute, but three small control-plane nodes on budget hardware cost tens of dollars a month, not hundreds.

Second, workers are priced at Hetzner's rate card, not cloud retail. The reference worker here is the CX22 — 2 shared vCPUs, 4 GB RAM, 40 GB disk, 20 TB of traffic — which lists around €4.35/month after 2026's price actions. Six of them cost about €26/month, roughly $340 a year. A Hetzner load balancer and the generous included traffic allowance add on the order of another $60–120 a year. Total: $400–500 a year for the same footprint that costs $3,000–5,000 managed.

Two honesty notes before anyone screenshots the table. Hetzner does not offer a native managed Kubernetes product — that absence is the point (there is no managed fee because there is no managed anything), but it means the comparison assumes you operate the cluster yourself, which is exactly the people-time line the next section prices. And Hetzner moved prices three times in 2026, so treat €4.35 as a snapshot and re-check the rate card; the order of magnitude survives every published adjustment so far.

Where the claim inverts: amortize the tax over tenants

Here is the sensitivity the essay never runs, because its workload never reaches it. Hold the operating tax roughly fixed — one declarative fleet, one GitOps pipeline, one upgrade runbook — and vary the number of tenants whose containers it carries:

Tenants behind the platformManaged PaaS (per-service fees)Owned CAPH fleet (infra + amortized ops)
1 service, burstyCheapest (e.g. Render; the essay's $3,800/yr saving is real)Overkill — you built a platform for one customer
5 services, one teamCompetitive; per-service meters add upBreak-even zone; bin-packing starts paying
20+ tenants via a PaaS API20× per-service pricing, no volume physicsWins — one ops tax, N tenants, hardware at cost

The mechanism is bin-packing plus API-hiding. Twenty tenants on a hosted PaaS pay twenty per-service markups; the same twenty containers on an owned fleet share a handful of CX22s whose combined bill is still under $50/month, while the Cluster API operational tax — the MachineDeployments, the provider upgrades, the node-image lifecycle — is paid once by the platform and hidden behind a git push interface no tenant ever sees. The essay's workload assumption (one service, bursty, small team) is precisely the leftmost column, where skipping Kubernetes is correct. A team running multiple tenants' containers behind a PaaS API lives in the rightmost column, where the same $50K logic runs in reverse: renting per-service simplicity at tenant count is what costs fifty thousand a year.

This is also why "just use Compose on one box" stops being an answer at the same boundary. Compose has no declarative machine lifecycle, no multi-machine scheduling, and no self-healing; those are exactly the properties a fleet of tenant containers needs and a single hobby service does not. The debate was never K8s-versus-simplicity in the abstract. It is single-workload economics versus multi-tenant economics, and the $50K figure belongs to whoever is on the wrong side of that line.

The existence proof: k0rdent's first year

"Owning Kubernetes can be cheaper than renting the argument against it" would be hand-waving without a production fleet to point at. k0rdent, Mirantis' open-source multi-cluster manager, turned one in early 2026 and is that fleet-native counter-example: Cluster API plus k0s for cluster lifecycle (its KCM component), Flux-based state management across clusters (KSM), roughly 150 community members across CNCF and platform-engineering channels, and a July 2026 CNCF Certified Kubernetes AI Conformance result covering both k0s and k0rdent-managed fleets.

The architecture detail that matters for this audit is the mapping the project draws explicitly: each platform problem gets a dedicated component — lifecycle, state, observability — all reconciled declaratively. That is the shape that makes the operating tax sublinear in tenant count: adding a workload cluster is a ClusterDeployment object, not a project. CNCF's May 2026 writeup of a Kairos-plus-k0rdent stack makes the same point from the operator side, describing fleet topology expressed entirely as CRDs with Flux reconciling state continuously. Nobody in these deployments is hand-feeding YAML to snowflake clusters; the YAML the essay dreads is written once, templated, and applied by robots.

k0rdent is not the only such stack — Rancher Fleet, Sveltos-based compositions, and plain CAPI-plus-Flux setups all play here — but its one-year milestone is dated, public, and concrete, which is what an existence proof needs to be.

Skip it or own it: the decision guide

Your shapeVerdictWhy
1 service, under 50K users, no platform teamSkip KubernetesThe essay is right; a hosted PaaS or one box wins
3–5 services, one team, steady trafficEither; optimize for team skillInfra delta is ~$3K/yr — pick what you can operate
Multi-tenant containers behind your APIOwn the fleet (CAPI on budget hardware)One ops tax amortized over N tenants beats N× per-service markup
Regulated / sovereign / GPU-heavyOwn it soonerManaged markups and data-plane constraints compound

The HN debate will run forever because both camps keep generalizing from their own column of this table. The $50K claim did the debate a favor by naming a number: numbers can be audited, and the audit shows the fee is real but the attribution is workload-shaped. Managed Kubernetes is a tax on small footprints and a rounding error on fleets; owned Kubernetes is a project for one service and a platform for twenty tenants. Count your tenants before you count your savings.

Bex.co is the open-source, AI-native Render alternative — push a git repo, get a running HTTPS service on machines you own. The PaaS API hides the fleet so your tenants never meet Cluster API at all. Star the repo on GitHub or deploy your first app today.

Related articles

Run this on infrastructure you own

bex is the open-source, AI-native Render alternative — push a git repo and get a running HTTPS service on your own machines.

Get started with bex