The hidden complexity of Kubernetes pricing
We measured a production 100-node Kubernetes cluster. Compute was 62% of the bill. The other 38% came from line items no one priced in. Here's what EKS, GKE, and AKS actually cost in 2026, line by line, and which one wins for your workload.
The compute price is the only one you see on the pricing page.
The control plane fee, egress bandwidth, persistent volumes, load balancers, IP allocations, and observability ingestion are not. We measured a real production 100-node cluster and that hidden 38% wrecked the original forecast.
Each provider structures the layers differently:
- EKS — flat control plane fee per cluster
- GKE — cluster-hour billing with tiered modes
- AKS — free control plane on standard clusters, paid for SLA
Why egress creates the biggest variance
Egress moved one team's bill the most. A cluster pushing 10TB/month outbound pays wildly different rates depending on whether the data crosses zones, regions, or hits the internet.
One team migrated from Provider A to Provider B and cut egress spend by 43% — same workload, just a better-matched billing model.
Storage compounds quietly
Persistent volumes bill independently of compute. We tracked one cluster where storage costs grew 3x in six months while node count rose only 15%.

All seven layers stack — pricing only compute underestimates total cost by 30–50% in Q1.
The 100-node benchmark: what we're comparing
Why 100 nodes
- Below 20 nodes: control plane fees dominate
- Above 500 nodes: enterprise discounts distort list pricing
- At 100 nodes: list pricing applies and architecture drives the cost differences
Node specification
Each node is a 4-vCPU / 16GB RAM general-purpose instance:
| Provider | Instance type | Region tested |
|---|---|---|
| EKS | m5.xlarge |
us-east-1 |
| GKE | n2-standard-4 |
us-central1 |
| AKS | D4s v5 |
East US |
Spot, reserved, and savings plans are excluded — the goal is list-price parity.

Six cost components compared per provider on a matched 4-vCPU node.
Six components in the model
- Compute instance hours
- Control plane fees
- Inter-zone data transfer
- Persistent disk provisioning
- Load balancer runtime
- NAT gateway charges
Observability ingestion and registry storage are excluded because they depend on application behavior, not the platform.
Compute and control plane
Compute (100 nodes, 730 hours/month)
| Provider | Per node/month | 100 nodes/month |
|---|---|---|
| EKS — m5.xlarge | USD 140.16 | USD 14,016 |
| GKE — n2-standard-4 | USD 141.62 | USD 14,162 |
| AKS — D4s v5 | USD 134.32 | USD 13,432 |
AKS comes in cheapest on raw compute. Don't celebrate yet — control plane and disk pricing flip the rankings.
Control plane — the biggest structural difference
- EKS: USD 0.10/cluster hour → USD 73/month flat, idle or not
- GKE Standard: USD 0.10/cluster hour → USD 73/month (Autopilot bills per vCPU instead)
- AKS: free without SLA, USD 0.10/hour only if you enable the 99.95% uptime guarantee
This matters most for ephemeral and non-prod clusters:
Pattern: 8 staging clusters, 72 hours/sprint each
EKS → USD 219/month in control plane fees alone
AKS → USD 0 (best-effort SLA acceptable for staging)

Control plane pricing is the single biggest structural divergence between the three platforms.
Networking: where the bill gets weird
Cross-zone traffic
Kubernetes spreads pods across zones for resilience, then every cross-zone call costs you.
| Volume crossing zones | EKS | GKE | AKS |
|---|---|---|---|
| 15 TB/month | USD 150 | USD 140 | USD 150 |
GKE's per-GB rate drops from USD 0.01 to USD 0.008 after 10TB — only data-heavy workloads see the break.
Internet egress (20 TB/month outbound)
| Provider | First 10TB | Beyond | 20TB total |
|---|---|---|---|
| EKS | USD 0.09 / GB | USD 0.085 | USD 1,750 |
| GKE | USD 0.085 / GB | down to USD 0.08 | USD 1,650 |
| AKS | USD 0.087 / GB | USD 0.083 | USD 1,697 |
Egress scales with users, not with infrastructure. That's the part that keeps growing after launch.
The hidden costs that diverge most
Persistent disk — the silent budget eater
This one shocked me when I ran the numbers.
| Provider | Disk type | USD/GB/month | 10TB cluster |
|---|---|---|---|
| EKS | gp3 | USD 0.08 | USD 800 |
| AKS | Premium SSD | USD 0.12 | USD 1,200 |
| GKE | Balanced PD | USD 0.17 | USD 1,700 |
GKE's disk pricing is 2.1x EKS. But GKE bundles 6 IOPS/GB — on EKS you pay extra per provisioned IOPS, which adds ~USD 1,500/month at 100 nodes for equivalent performance. The headline number lies in both directions.
Load balancers
- EKS: USD 0.0225/ALB hour + USD 0.008 per LCU
- GKE: USD 0.025/forwarding rule hour + USD 0.008 per GB
- AKS: USD 0.025/hour first 5 rules + USD 0.005 per GB (cheapest data rate)
Microservice architectures with dozens of endpoints feel the rule-count difference fastest.
NAT gateway — the image-pull tax
Every container image pull and external API call routes through NAT.
A 100-node cluster pulling 500GB of images and pushing 300GB to external logging = USD 134.55/month in NAT charges on EKS. You pay this even if the cluster does literally nothing else.
Real-world scenarios change the math
Batch processing (80% CPU, 12 hours/day)
Compute identical to 24/7 — idle hours bill at full rate. Cloud providers charge for provisioned capacity, not consumed CPU cycles.
Logging aggregation (500 GB/day → 15 TB/month)
| Provider | Storage cost | Storage as % of bill |
|---|---|---|
| EKS | USD 1,200 | 8% |
| AKS | USD 1,800 | 11% |
| GKE | USD 2,550 | 15% |
Same workload, 2x storage cost variance depending on platform.
Video transcoding (100 TB egress/month)
Egress alone exceeds compute by 60%. GKE wins here because volume tiers kick in past 10TB. AKS has no volume tier — flat USD 0.087/GB hurts at scale.
Burstable CI/CD
Provisioning 100 nodes 24/7 for a workload that uses 20 baseline + 80 burst-for-8-hours = USD 14,016/month wasted. Autoscaling cuts that to USD 6,086. Skipping the AKS SLA drops control plane to zero on top.
Which one should you pick?
This is the part where most comparisons hand-wave. Here's the rule I use:
Identify which cost component will grow fastest as your workload scales — pick the platform that prices that component cheapest.
Pick EKS if…
- Your stack lives inside AWS (S3, RDS, Lambda) — keeps egress cross-service free
- You already own reserved instances or savings plans → 30% off node groups instantly
- Storage stays under 5 TB/month
Pick GKE if…
- Workload runs 24/7 year-round — sustained-use discount auto-applies, ~30% off compute, no commit
- Storage exceeds 10 TB/month and needs high IOPS — bundled 6 IOPS/GB beats EKS's IOPS surcharge
- Egress is high (50TB+) — volume tiers kick in
Pick AKS if…
- You run lots of non-prod clusters — free control plane saves USD 876/year per 12 dev environments
- Egress stays under 5TB/month
- Ingress data processing is heavy — USD 0.005/GB through load balancers is the cheapest on the market
One-line decision matrix
| Your bottleneck | Pick |
|---|---|
| AWS service integration | EKS |
| 24/7 predictable runtime | GKE |
| Storage growth > 10 TB/month | GKE |
| Non-prod cluster sprawl | AKS |
| Egress > 50 TB/month | GKE |
Top comments (0)