The Boring Infra ▍

DRAFT · COST · FLEET · EKS

The control plane tax

16 August 2026 · draft for review

Ten cents an hour sounds like nothing, right up until you count the clusters nobody counted. At fifty clusters that tax is about forty four thousand dollars a year, and it is the line item that decides whether the fleet is cheap or quietly expensive.

And that number is before the footnotes anyone will quote back at you. Extended support costs six times the base rate, sixty cents an hour per cluster, and the Provisioned Control Plane tiers start at $1.65 an hour. A fleet parked on older versions is paying a very different tax than the one that upgrades.

At two hundred clusters it's a hundred seventy five thousand dollars a year. That's a platform engineer's salary, spent on control planes. And the interesting part is what the number is really a proxy for.

The tax is a proxy for planes

Every control plane is a per cluster cost, so the bill scales with the number of planes, not the number of workloads. You can run one workload on a cluster or a thousand, same tax. The way to make the bill sane is to control the plane count, and there are two directions to push, one technical and one organizational.

The technical direction is self managed control planes. Run vanilla Kubernetes with kubeadm through Cluster API, and the ten cent fee disappears, because the control plane runs on instances you're already paying for. That's the lever everyone reaches for first, and it works, with one condition.

Self managed is a trade, not a saving

Here's what the VP math leaves out. The ten cents buys AWS owning the control plane. Upgrades, etcd backup and restore, control plane HA, patching, certificate rotation, and the 3am failures. Move to self managed and you own all of it. That's engineering time, and on call time is the most expensive line item on a platform team's sheet.

Self managed only nets out positive because of Cluster API. CAPI turns control planes into cattle, declarative, replaceable, Git managed. That's what makes the operational burden tolerable. Without CAPI you're self managing pets, and the ten cents starts looking cheap. The whole argument is that Cluster API is what makes the control plane tax avoidable.

The organizational direction, fewer planes

The bigger lever is consolidation, and it's the one nobody wants to hear. Fifty clusters for fifty teams is a convenience tax. Ten shared clusters with namespaces, RBAC, and network policies serve the same org at a tenth of the planes, with better utilization and fewer things to upgrade.

But consolidation has a hard limit, and pretending otherwise is how you get eaten in the comments. Some organizations genuinely need per team or per workload clusters. VPC level isolation, compliance boundaries, blast radius separation, regulatory requirements. For those, the answer isn't consolidation, it's making each plane cheap, self managed through CAPI, or virtual clusters when the isolation need is softer.

The honest line. Don't consolidate where isolation is a requirement, and don't pay managed prices where it isn't. Fewer planes where you can, cheaper planes where you must.

The number nobody prices

The per cluster fee isn't the whole cost of a plane anyway. Each control plane is also etcd, metrics, monitoring surface, upgrade burden, and a small team of alert rules that go quiet. The dollar tax is the visible part. The operational surface is the hidden one, and it scales with the same count.

The boring conclusion

Fleet economics are decided by how few control planes you can get away with, and how cheaply you can run the ones you can't avoid. Cluster API makes self managed viable, consolidation reduces the count, and the ten cent line item is the visible tip of a cost that's really about operational surface. Count your planes before you count your nodes.

How many clusters does your org actually have, and who counted last?