kubernetescost-optimizationfinopsmulti-cloud

Kubernetes control plane fees: what you pay just to have a cluster

Before a single pod schedules, most managed Kubernetes clusters bill a flat hourly fee for the control plane. It is small per cluster and enormous across a fleet of fifty. Here is what each provider charges and how to stop paying it fifty times.

The C3X Team··6 min read

Quick answer

Managed Kubernetes control planes cost about $0.10 per cluster-hour, roughly $73 per month, on EKS, GKE Standard, and AKS Standard tier. AKS offers a Free tier at $0 with no uptime SLA, and GKE gives one free zonal cluster per billing account. EKS extended support for older Kubernetes versions jumps to $0.60 per hour, about $438 per month, a six times increase. The cost only becomes material at fleet scale: 50 clusters on EKS is $3,650 per month in control plane fees alone, which is why cluster consolidation and namespace-based multi-tenancy usually beat cluster-per-team.

An empty Kubernetes cluster is not free. Every managed offering charges a flat fee for running and maintaining the API server, etcd, scheduler, and controller manager on your behalf. Per cluster the number is small enough to ignore. Across a fleet that grew one cluster at a time, it is a line item nobody budgeted for.

The rate card

OfferingHourlyMonthlyNotes
Amazon EKS standard support$0.10$73Per cluster, no free tier
Amazon EKS extended support$0.60$438Old Kubernetes versions
AKS Free tier$0$0No SLA, smaller clusters
AKS Standard tier$0.10$7399.95 percent SLA
AKS Premium tier$0.60$438Long-term version support
GKE Standard and Autopilot$0.10$73One free zonal cluster

The extended support trap

The most expensive mistake here is falling behind on Kubernetes versions. When an EKS cluster ages out of standard support, the control plane fee goes from $0.10 to $0.60 per hour automatically. That is $365 extra per month per cluster for the privilege of not upgrading. A team with 15 clusters that all drifted past the standard support window pays $5,475 per month in extended support surcharges. Azure Premium tier works the same way at the same $0.60 rate.

The fix is not clever: budget upgrade work quarterly. The arithmetic makes it easy to justify, because three days of engineering time per cluster per year is cheaper than $4,380 per cluster per year in surcharges.

Watch for the version drift pattern that creates this. A cluster is created, the team ships on it, and the upgrade never gets prioritized because nothing is broken. Kubernetes minor releases arrive roughly three times a year and standard support windows run about 14 months, so a cluster left alone for two years is guaranteed to fall out. The organizations that avoid the surcharge entirely are the ones that treat the upgrade as a scheduled platform task with a date, not as a ticket that competes with feature work.

Fleet math is where it hurts

Consider an organization that gave each team its own cluster: 8 teams, each with production, staging, and dev. That is 24 clusters. On EKS the control plane fees alone are $1,752 per month, $21,024 per year, for infrastructure that does no work. Worse, each of those 24 clusters needs its own system pods: CoreDNS, kube-proxy, CNI, metrics server, log shipper, monitoring agent. Budget 0.5 to 1 vCPU and 1 to 2 GB of overhead per node for the DaemonSets, plus a minimum viable node count of 2 to 3 per cluster for availability.

TopologyClustersControl planeMinimum node floorTotal floor
Cluster per team per env24$1,75272 nodes x $70$6,792
Cluster per env, namespaces per team3$2199 nodes x $70$849

The consolidated topology costs 87 percent less at the floor, before any workload runs. That gap is the real argument for namespace-based multi-tenancy, and it is whyper-namespace cost allocation exists: you consolidate clusters and then split the bill by namespace instead of by cluster.

When separate clusters are worth the fee

Consolidation is not always right. Separate clusters give hard isolation boundaries that namespaces do not: different compliance scopes, different Kubernetes versions, different upgrade cadences, different blast radius. If a regulated workload needs its own cluster, $73 per month is a trivial price for a clean audit boundary. The question is not whether to ever split, it is whether every team needing a sandbox justifies a dedicated control plane.

For dev and sandbox work specifically, the AKS Free tier and the one free GKE zonal cluster are genuinely useful. A team that runs 10 ephemeral dev clusters on AKS Free tier pays $0 for control planes where EKS would charge $730 per month. If your organization is multi-cloud anyway, putting the sandbox fleet where the control plane is free is an easy $8,760 per year.

Counting the fee properly

Control plane fees are per cluster per hour, prorated, and they accrue whether or not any workload runs. A cluster created for a proof of concept in March and never deleted has billed $73 every month since. Tag clusters with an owner and an expiry date, run a monthly sweep for clusters with zero non-system pods, and treat an empty cluster the same way you treat an unattached disk. Our guide toidle Kubernetes cost covers the node side of the same problem.

The control plane fee is predictable, which makes it easy to estimate before you create anything. Price the cluster topology from Terraform against the resource catalog and the fixed floor shows up in the pull request, where someone can ask whether the fleet really needs 24 control planes.

FAQ

How much does a Kubernetes control plane cost?

About $0.10 per cluster-hour, roughly $73 per month, on EKS, GKE Standard, and AKS Standard tier. AKS offers a Free tier at $0 with no uptime SLA, and GKE includes one free zonal cluster per billing account. The fee accrues whether or not any workload runs on the cluster.

Why did my EKS control plane cost jump six times?

Almost certainly extended support. When an EKS cluster falls out of the standard support window for its Kubernetes version, the control plane fee rises from $0.10 to $0.60 per hour automatically, which is $365 extra per month per cluster. Azure Premium tier applies the same $0.60 rate for long-term version support. Upgrading the cluster returns it to the standard rate.

Is it cheaper to run one big cluster or many small ones?

Usually one bigger cluster with namespaces per team. Twenty-four clusters cost $1,752 per month in EKS control plane fees plus a node floor of two to three nodes each, roughly $6,792 per month before any workload runs. Three shared clusters with namespace isolation cost about $849 at the same floor, an 87 percent reduction. Separate clusters are still worth it for hard compliance or version isolation boundaries.

Do I pay for a Kubernetes cluster with no pods running?

Yes. The control plane fee is charged per cluster-hour regardless of workload, so an empty cluster still bills about $73 per month on EKS. Add the system DaemonSets and the minimum node count needed for availability and an idle cluster typically costs $200 to $300 per month. Treat forgotten clusters like unattached disks and sweep for them monthly.

How can I avoid paying control plane fees for dev clusters?

Use the AKS Free tier, which charges $0 for the control plane with no uptime SLA, or the one free zonal cluster GKE gives per billing account. Ten ephemeral dev clusters on AKS Free tier cost $0 in control plane fees where EKS would bill $730 per month, roughly $8,760 per year. Deleting idle clusters entirely is the other half of the answer.

How does C3X help with Kubernetes control plane cost?

C3X prices Kubernetes infrastructure from Terraform, so creating a new cluster shows its fixed monthly floor, the control plane fee plus the minimum node group, in the pull request. That makes the cost of a cluster-per-team topology visible at review time, when someone can still ask whether namespaces would do the job for a fraction of the fleet cost.

What to do next

See the fixed cost of every cluster before you create it. C3X reads your Terraform and prices your resources against a live catalog. Start with the quickstart.

Try C3X on your own Terraform

Free and open source. No API key required. One command to install, one command to estimate.