EKS vs AKS vs GKE Pricing: The Real Cost Math of Managed Kubernetes

Quick answer
The control-plane fee everyone compares is a rounding error. The real EKS vs AKS vs GKE pricing gap comes from spot mechanics, commitment discounts, autoscaling efficiency, and the hidden line items — NAT gateways, per-Service load balancers, and log ingestion. Here's the full cost math, with three worked cluster examples.
- Control-Plane Fees: The Number Everyone Compares
- Worker Node Economics: Where the Money Actually Is
- The Hidden Costs People Miss
- Worked Example: Three Clusters, Three Clouds
- Decision Framework
13 min read · Cloud Engineering
Every EKS vs AKS vs GKE pricing comparison leads with the control-plane fee, and the control-plane fee is the least important number in the comparison. It's roughly $73/month on EKS, roughly $73/month on GKE, and $0 on AKS's free tier — and on any cluster doing real work, all three figures disappear into the noise of what you pay for worker nodes, data transfer, and logs.
This post is the pricing-focused companion to our full EKS vs GKE vs AKS comparison, which covers autoscaling, networking, identity, and upgrades. Here we do only the money: what each platform actually charges, where the bills genuinely diverge, and a worked example pricing the same three workload profiles on all three clouds.
One caveat that applies to every dollar figure below: all prices are indicative list prices — representative of common US regions in 2026, but they vary by region, change over time, and say nothing about negotiated enterprise discounts. Treat them as ratios, not quotes, and verify against the pricing pages before committing to anything.
Control-Plane Fees: The Number Everyone Compares
| EKS | GKE | AKS | |
|---|---|---|---|
| Standard fee | $0.10/hr (~$73/mo) per cluster | $0.10/hr (~$73/mo) per cluster | Free tier: $0 |
| Free allowance | None | ~$74/mo credit per billing account — effectively one free zonal or Autopilot cluster | Free tier has no uptime SLA |
| Paid/SLA tier | Included | Included (zonal and regional cost the same) | Standard: $0.10/hr with financially backed uptime SLA |
| Extended/long-term support | Premium (LTS): |
Three details worth knowing:
GKE's free cluster is per billing account, not per cluster. The credit covers one zonal or Autopilot cluster's fee. Your second cluster pays full price, and a regional Standard cluster never qualified (Autopilot clusters, though regional, do). For a company running one cluster, GKE's control plane is effectively free; for a fleet, it prices identically to EKS.
AKS "free" means free of SLA too. The free tier is genuinely fine for dev and batch clusters, but production workloads want the Standard tier — which costs exactly what EKS and GKE charge. The honest framing: AKS lets you not pay for control planes that don't need guarantees, which is a real saving if you run many small clusters.
Extended support is the surcharge that actually stings. Fall behind on Kubernetes versions and all three clouds now charge 6× the standard fee — roughly $438/month per cluster — to keep running an EOL version. A fleet of 20 clusters stuck on an old version is paying an extra ~$7,300/month for procrastination. This is the strongest financial argument for a disciplined upgrade cadence that exists.
Why none of this decides anything
A single 8-vCPU node costs roughly $280/month on-demand. A 50-node production cluster spends ~$14,000/month on compute against a $73 control-plane fee — 0.5% of the bill. The control plane only matters in two scenarios: fleets of tiny clusters (dozens of dev/per-team clusters, where AKS free tier or GKE's credit genuinely compounds) and extended-support penalties. Everything else is worker economics.
Worker Node Economics: Where the Money Actually Is
On-demand list prices for equivalent instance shapes are nearly identical across clouds — a 4 vCPU / 16 GiB general-purpose VM runs $0.19/hr ($140/mo) on all three, give or take a few percent by region. The divergence comes from how each cloud discounts.
Spot / preemptible capacity
| AWS Spot | GCP Spot VMs | Azure Spot | |
|---|---|---|---|
| Typical discount | 60–90% off on-demand | 60–91% off | Up to ~90% off |
| Price behaviour | Market-based, moves per pool | Set by Google, changes at most monthly — most predictable | Variable, can evict on price or capacity |
| Interruption notice | 2 minutes | 30 seconds | 30 seconds |
GCP's spot pricing is the easiest to budget because it barely moves. AWS has the deepest pools and the most mature tooling for riding them (Karpenter, interruption handling via EventBridge/SQS). Azure Spot discounts look great on paper but eviction behaviour varies more by region and VM family — test before you build a batch platform on it.
Commitments
| AWS | GCP | Azure | |
|---|---|---|---|
| Flexible commitment | Compute Savings Plan — up to ~66% (3yr), covers EC2/Fargate/Lambda | Flexible CUDs — ~28% (1yr) / ~46% (3yr) | Savings plan for compute — up to ~65% (3yr) |
| Rigid commitment | EC2 Instance SP / Standard RI — up to ~72% | Resource-based CUDs — ~37% (1yr) / ~55% (3yr) | Reserved VM Instances — up to ~65–72% (3yr) |
| Automatic discount | None | Sustained use discounts — up to ~30% on some machine families, no commitment | None |
Two structural points hide in that table. First, GCP is the only cloud that discounts you automatically — sustained use discounts apply to qualifying machine families with zero paperwork, which quietly narrows any on-demand comparison. Second, AWS's flexible commitment is the most flexible of the three — a Compute Savings Plan follows your spend across instance families, regions, Fargate, and Lambda, which matters enormously for Kubernetes clusters whose instance mix churns under an autoscaler. Committing to specific instance types under Karpenter is fighting your own tooling. The mechanics are covered in depth in our AWS cost optimization guide.
Autoscaling efficiency: the biggest lever nobody prices
The cheapest node is the one you don't run. Utilization — how tightly pods pack onto nodes, and how fast empty nodes disappear — routinely moves the bill more than any discount program.
EKS + Karpenter is the strongest story here. Karpenter provisions individual right-sized instances in under a minute, continuously consolidates underutilized nodes, and does sophisticated spot/on-demand fallback across instance families. Teams switching from static node groups to Karpenter with consolidation typically shed 20–40% of their node count. Setup is covered in How to Install Karpenter on EKS, and our Karpenter NodePool Generator will build you a cost-optimized NodePool spec.
GKE Autopilot changes the pricing model entirely: you pay per pod resource request (~$0.04–0.05/vCPU-hr plus a memory rate, indicative), and idle node capacity is Google's problem, not yours. The inversion point is utilization. At list prices, a fully-requested 4 vCPU / 16 GiB of Autopilot pods costs ~25–35% more than the equivalent Standard node — so a well-packed, steady cluster is cheaper on Standard. But below roughly 60–70% average node utilization, Autopilot wins, because Standard makes you pay for the idle slack Autopilot doesn't bill. Bursty, spiky, or neglected clusters — which describes most dev and many prod clusters — often come out ahead on Autopilot.
AKS Node Auto Provisioning is Karpenter under the hood (Microsoft adopted the open-source project for it), which is genuinely good news — but it's the youngest of the three implementations with the least production mileage. It works; it just has fewer war stories behind it.
AWS Cost & Architecture Review Checklist
The questions we ask in a paid AWS review — rightsizing, storage classes, network egress, and the usual five-figure surprises. Plain Markdown.
Free. Instant download. You'll also get the occasional deep-dive from the newsletter — unsubscribe anytime.
The Hidden Costs People Miss
These line items don't appear in any Kubernetes pricing calculator, and on real clusters they routinely add 15–40% on top of compute:
- NAT gateways and egress. AWS NAT Gateway runs ~$0.045/hr plus ~$0.045/GB processed; Azure NAT Gateway is priced almost identically; GCP Cloud NAT charges per-VM-hour plus a similar per-GB rate. Private-subnet nodes pulling container images through NAT is the classic silent burn — see AWS NAT Gateway cost optimization for the fixes (VPC endpoints pay for themselves in days). Internet egress itself is ~$0.08–0.12/GB on all three clouds.
- A load balancer per Service. Every
Serviceof typeLoadBalancerprovisions a real cloud LB at roughly $16–20/month base plus traffic charges — on all three clouds. Twenty microservices exposed individually is ~$350/month before a byte flows. Use an Ingress controller or Gateway API implementation to multiplex instead. - Cross-zone traffic. AWS and GCP both charge ~$0.01/GB for traffic crossing zones — in each direction on AWS — which a chatty east-west microservice mesh turns into real money. Azure is the outlier: it eliminated availability-zone data transfer charges, a genuinely underrated AKS cost advantage. On AWS/GCP, topology-aware routing keeps traffic zone-local.
- Log ingestion. CloudWatch Logs ingests at ~$0.50/GB and Cloud Logging at ~$0.50/GiB (after a free allotment) — but Azure Monitor's Log Analytics ingests at roughly $2.30/GB, 4–5× the others. A chatty 50-node cluster shipping 8 GB/day of container logs costs ~$120/month to ingest on AWS or GCP and ~$550/month on Azure defaults. Azure's Basic Logs tier and aggressive filtering mitigate it, but only if you know to configure them.
- Extended support surcharges, covered above — the tax on old Kubernetes versions is now material on every cloud.
Worked Example: Three Clusters, Three Clouds
Same three workload profiles, priced on all three platforms. Assumptions (all indicative list prices, ~730 hr/month, common US regions, Linux): 4 vCPU / 16 GiB nodes at ~$0.19/hr on-demand; 8 vCPU / 32 GiB at ~$0.38/hr; spot at an assumed 70–75% discount; 3-year commitment discounts assumed at ~50% (AWS Compute SP), ~55% (GCP CUD), ~55% (Azure RI). Hidden costs (NAT, LBs, logs) excluded — remember they'd add 15–40%. Your region, negotiated rates, and actual spot fills will produce different numbers; the ratios are the point.
Profile 1 — small dev cluster (3× 4 vCPU/16 GiB, on-demand, 24/7, no SLA needed):
| EKS | GKE | AKS | |
|---|---|---|---|
| Control plane | $73 | ~$0 (free-credit zonal cluster) | $0 (Free tier) |
| Nodes | ~$420 | ~$425 | ~$420 |
| Indicative total | ~$493/mo | ~$425/mo | ~$420/mo |
The one scenario where control-plane fees are visible: EKS is ~17% dearer purely because it has no free option. Multiply by 20 dev clusters and AKS/GKE save real money.
Profile 2 — 50-node steady production (50× 8 vCPU/32 GiB, HA control plane, 3-year commitments):
| EKS | GKE (regional) | AKS (Standard) | |
|---|---|---|---|
| Control plane | $73 | $73 | $73 |
| Nodes (committed) | ~$7,000 | ~$6,400 | ~$6,300 |
| Indicative total | ~$7,100/mo | ~$6,500/mo | ~$6,400/mo |
At steady state the platforms land within ~10% of each other, and the gap comes from commitment structures, not sticker prices. The control plane is 1% of the bill. A Karpenter consolidation win of 20% on EKS would outweigh the entire cross-cloud spread — utilization beats platform choice.
Profile 3 — bursty batch (3-node on-demand system pool + 40× 8 vCPU spot nodes ~6 hr/day):
| EKS | GKE (regional) | AKS (Free tier) | |
|---|---|---|---|
| Control plane | $73 | $73 | $0 |
| System pool | ~$420 | ~$425 | ~$420 |
| Spot burst | ~$830 | ~$840 | ~$690 |
| Indicative total | ~$1,320/mo | ~$1,340/mo | ~$1,110/mo |
AKS looks cheapest on paper here, but this is the profile where paper matters least: what decides the real bill is whether your autoscaler actually obtains spot capacity at the discount assumed, falls back gracefully, and scales to zero afterwards. EKS + Karpenter has the strongest track record at exactly that; a batch platform that falls back to on-demand 30% of the time erases the entire AKS advantage.
Decision Framework
- Running many small/dev/ephemeral clusters? AKS's free tier and GKE's free-cluster credit are real savings; EKS charges for every cluster, every hour.
- One or a few large production clusters? The platforms converge to within ~10%. Choose on ecosystem and operations — the general comparison covers that — and win on utilization instead.
- Spot-heavy batch or bursty workloads? EKS + Karpenter for the most mature spot machinery, GCP for the most predictable spot pricing. Validate Azure Spot eviction behaviour in your region before betting on it.
- Low or unpredictable utilization? GKE Autopilot's per-pod model means you stop paying for idle nodes — often cheaper than any Standard cluster you'd realistically operate.
- Log-heavy workloads on Azure? Budget for Log Analytics ingestion explicitly, or configure Basic Logs and filtering from day one.
- Whatever you choose: instrument cost per namespace/workload early — Kubecost, Vantage, and Infracost compared — and keep Kubernetes versions current. The extended-support surcharge is the most avoidable cost on this entire page.
Frequently Asked Questions
Is AKS really cheaper than EKS and GKE?
For fleets of small clusters, yes — the free control-plane tier compounds. For large production clusters, mostly no: the Standard tier costs the same $0.10/hr as the others, compute list prices are near-identical, and Azure's expensive log ingestion can eat the difference. Azure's genuine structural advantage is free cross-zone traffic, which matters for chatty east-west architectures.
How much does the EKS control plane cost?
Indicatively, $0.10/hour (~$73/month) per cluster on a standard-support Kubernetes version, rising to $0.60/hour ($438/month) once the version enters extended support. There is no free tier. On any cluster larger than a handful of nodes, it's under 5% of the bill.
Is GKE Autopilot cheaper than GKE Standard?
It depends on utilization. At list prices, fully-utilized Autopilot pods cost ~25–35% more than the equivalent well-packed Standard nodes — but Autopilot bills only pod requests, never idle capacity. Below roughly 60–70% average node utilization, Autopilot typically wins. Measure your actual requested-vs-allocated ratio before deciding.
Which cloud has the best spot discounts for Kubernetes?
The listed discounts are similar (60–90% everywhere). The practical differences: GCP's spot prices are the most stable and predictable, AWS has the deepest capacity pools plus Karpenter's best-in-class spot orchestration, and Azure Spot is the most variable. For spot-first platforms, tooling maturity usually matters more than the headline percentage.
Do these prices include everything a cluster costs?
No — and that's a core point of this post. Add NAT gateway processing, internet egress, one load balancer per exposed Service, cross-zone traffic (on AWS/GCP), log ingestion, persistent disks, and container registry storage. On real clusters these commonly add 15–40% on top of compute, and they differ by cloud more than compute does.
See also
- EKS vs GKE vs AKS: Choosing Your Managed Kubernetes Platform — the full feature and operations comparison this post complements
- AWS Cost Optimization — Savings Plans, Spot, right-sizing, and EKS cost controls in depth
- How to Install Karpenter on EKS — the biggest single cost lever on EKS
- AWS NAT Gateway Cost Optimization — killing the most common hidden line item
- Kubecost vs Vantage vs Infracost — getting per-workload cost visibility
Planning a platform choice or trying to cut an existing Kubernetes bill? Talk to us at Coding Protocols — we run this exact analysis against real workloads, not list prices.
Official References
- Amazon EKS pricing — current control-plane, extended-support and Auto Mode rates
- GKE pricing — cluster management fee, Autopilot rates and the free-tier cluster
- AKS pricing — Free, Standard and Premium tier charges
- Amazon EKS User Guide — cluster architecture, versions and add-ons
- EKS Kubernetes versions — the version support and extended support policy
Was this article helpful?
Be the first to rate this article
Related Topics
Found this useful? Share it.


