Been running production K8s on GKE since 2021, and Google's pricing model still fucks with engineers who think they understand it. Here's where they get your money.
What I've Burned Money On
GKE Standard: $0.10 per hour per cluster ($72/month) + your VM costs
GKE Autopilot: $0.0445 per vCPU hour + $0.0049225 per GB memory hour
Both get $74.40/month in free credits - enough to cover one Standard cluster completely or about 1,600 vCPU hours in Autopilot.
Standard Mode: Full Control, Full Headache
Standard mode gives you full access to the underlying VMs which sounds great until you're debugging why your pods can't reach the internet at 3am because someone fucked up the VPC routing. You manage node pools, pick instance types, and pretend you understand why the load balancer health checks are failing.
What I've actually paid:
- Dev cluster that nobody turned off: 3 x e2-standard-2 nodes = $150/month of pure waste
- Production cluster before I learned anything: 6 x n1-standard-4 nodes = $600/month
- Enterprise clusterfuck: 20 x n2-standard-8 nodes = $3,200/month (half of them idle)
The $72 management fee is pocket change compared to VM costs. What destroyed our budget was leaving dev nodes running over weekends because nobody understood cluster autoscaler. Set that shit up or watch your CFO lose their mind.
Use Standard when you actually know what you're doing: need specific instance types for ML workloads, want preemptible instances to cut costs 60%, or need privileged containers that Autopilot blocks. Custom networking and GPU nodes also require Standard.
Standard will fuck you when: you forget dev clusters exist over weekends ($500 mistake last month), provision 20 nodes for a 5-pod workload, or don't configure autoscaling properly. It's like giving a loaded gun to someone who's never seen Kubernetes before.
Autopilot: \"Serverless\" Kubernetes That Actually Works
Autopilot hides all the node bullshit from you. Set CPU/memory requests, Google figures out the rest. It's serverless K8s that doesn't suck, which is rare.
What I've actually paid in Autopilot:
- API service (0.5 vCPU, 1GB RAM, 24/7): $22/month (close to the math)
- Batch processor (8 vCPU, 16GB RAM, 4h/day): $52/month
- Web frontend (2 vCPU, 4GB, scales 1-10): $85-830/month depending on traffic
Works out to roughly $32/vCPU/month and $3.50/GB/month, which is what Google says if you can do math.
Autopilot saves your ass when: you have unpredictable traffic, your team doesn't want to become infrastructure experts, or you're running microservices that need different resources. Per-resource billing means you stop paying for idle nodes.
Autopilot costs more when: you run consistently high CPU workloads (Standard's fixed nodes are cheaper), you request way more resources than you use (you pay for requests, not usage), or you need features it blocks like privileged containers or custom networking.
The Free Tier Reality Check
The $74.40/month credit covers:
- One Standard cluster completely (management fee only)
- About 1,600 vCPU hours in Autopilot (roughly a 2-vCPU service running 24/7)
Don't count on free tier for anything beyond experimentation. Real workloads blow through credits fast.
What Actually Destroyed Our Budget
The node size fuckup (Standard mode):
Watched someone click 'n2-highmem-96' instead of 'n2-standard-4' for a dev cluster. Took three weeks to notice we were burning $8,000/month to run a WordPress blog. The Slack channel was... educational.
Resource request madness (Autopilot):
Set resource requests to 2 vCPU because "better safe than sorry." Actually used 200m CPU. Paid for 2000m CPU for 6 months before someone looked at the monitoring. Autopilot doesn't give a shit about your actual usage.
Ghost storage costs:
Found $340/month in orphaned disks from clusters we deleted 8 months ago. The disks didn't get deleted with the cluster because some genius used kubectl delete
instead of Terraform. Set up resource monitoring or keep funding Google's retirement.
Load balancer tax:
Each LoadBalancer service costs $18/month. Dev environment with 10 services? That's $180/month just for load balancers nobody uses. Use Ingress controllers like a sane person.
The Enterprise Features That Are Free Now
Google killed the separate "Enterprise" SKU in 2023 because nobody understood what the hell they were paying extra for. Now these features are just free in Standard clusters, probably because AWS was making them look bad:
- Config Sync: GitOps that auto-syncs your Git repo to clusters (works great when it works)
- Policy Controller: OPA-based policies that reject shit you don't want running
- Fleet Management: Manage multiple clusters from one place instead of 20 browser tabs
- Binary Authorization: Make sure only signed images run (paranoid but smart)
These are free but will absolutely destroy your day if you enable them carelessly. Policy Controller especially - I watched it block every deployment for 2 hours because someone enabled it with default policies that banned everything. Read the fucking docs first.
Which One Actually Matters For You
Standard when you know what you're doing:
- Need GPU nodes for ML workloads (Autopilot doesn't support GPUs yet)
- Want predictable bills that won't surprise the CFO
- Need privileged containers or custom networking that Autopilot blocks
- Running high-utilization workloads where fixed node costs win
Autopilot when you want life to be easier:
- Your load varies and you're tired of managing autoscaling
- You want Google to handle the infrastructure while you write code
- Running microservices with different resource needs
- Your team doesn't want to become Kubernetes experts
Ran both for 3+ years. Standard gives you control and usually costs less for steady loads. Autopilot removes headaches but can be expensive if you fuck up resource requests. Both work fine in production - the choice matters less than not being an idiot about resource management.
The real cost isn't Google's pricing - it's the 3am pages when you misconfigured something. Pick your poison wisely.