GKE Standard vs Autopilot: which mode for your workload
Autopilot bills per-pod (vCPU, memory, ephemeral storage). Standard bills per-node. The break-even is around 50-55% node utilization. Here's the actual pricing math with n2-standard-4 nodes, when each mode wins, and how to migrate without surprises.
Quick answer
Both share the $73/month GKE control plane fee (with one free zonal cluster per billing account). Standard bills compute by node-hour; Autopilot bills per pod by vCPU-time and memory-time. Standard wins when node utilization is high (over 50%) and for workloads needing DaemonSets, GPUs, or custom OS. Autopilot wins when utilization is low or variable, and when operational simplicity matters more than absolute cost.
GKE's two operational modes have fundamentally different cost models. Standard exposes worker nodes you manage; Autopilot abstracts nodes entirely and bills per pod. The pricing comparison is more complex than it first appears because Autopilot's per-pod model wins at low utilization while Standard's per-node model wins at high utilization. This post walks through the math, the operational differences, and when each one makes sense.
The pricing models
GKE Standard
Control plane: $0.10/hour ($73/month) per cluster. First zonal cluster per billing account is free.
Node compute: regular Compute Engine pricing for the worker nodes you provision. Sustained-use discounts apply automatically. Committed Use Discounts and Spot VMs both available.
Persistent storage: standard Persistent Disk pricing per GB-month.
GKE Autopilot
Control plane: same $0.10/hour fee, same first-cluster-free deal.
Per-pod compute: billed by requested CPU and memory, not provisioned nodes. Rates roughly:
- vCPU: $0.0445/vCPU-hour
- Memory: $0.0049225/GB-hour
- Ephemeral storage: $0.0000548/GB-hour
A pod requesting 1 vCPU + 2 GB memory + 10 GB ephemeral storage runs at $0.0445 + $0.0049225×2 + $0.0000548×10 = $0.054/hour (~$40/month if running 24/7).
For per-resource pricing details, see the catalog page for google_container_cluster.
The break-even math
Compare costs for a workload needing 10 vCPUs + 40 GB memory of sustained compute, ignoring control plane (same on both):
Standard with 3× n2-standard-4 nodes (12 vCPU + 48 GB total)
- 3 × n2-standard-4: $0.194/hour × 730 = ~$425/month
- Utilization: 10 vCPU used / 12 provisioned = 83%
- Cost per pod-vCPU-hour: $0.194×3/10 = $0.058
Standard with 4× n2-standard-4 nodes (16 vCPU + 64 GB total)
- 4 × n2-standard-4: $0.194 × 4 × 730 = ~$566/month
- Utilization: 10/16 = 62%
- Cost per pod-vCPU-hour: $0.078
Autopilot for the same 10 vCPU + 40 GB workload
- 10 × $0.0445 + 40 × $0.0049225 = $0.642/hour
- ×730 = ~$469/month
- Cost per pod-vCPU-hour: $0.0445
At 83% node utilization, Standard is cheaper ($425 vs $469). At 62% utilization, Autopilot is cheaper ($469 vs $566). The crossover is around 50-55% sustained utilization.
Where Autopilot's per-pod model really wins
Variable load with autoscaling gaps
Standard's Cluster Autoscaler adds nodes when pods are pending and removes them when underutilized. But there's lag: pods wait for new nodes to provision (1-3 minutes typically), and underutilized nodes stick around for the cool-down window.
Autopilot eliminates this. Pods bill by request, idle pods scale to zero (assuming the workload supports it), and there's no node overhead.
Small clusters with sparse workloads
A development cluster with 5 services using 0.5 vCPU each totals 2.5 vCPU. On Standard, you still need at least one n2-standard-2 node ($0.097/hour = $71/month). On Autopilot, you pay for 2.5 vCPU-hours of usage (~$80/month). Roughly tied, but Autopilot scales down gracefully if usage drops.
Operational simplicity
No node management. No DaemonSet config. No node OS upgrades. No cluster autoscaler tuning. For teams without dedicated platform engineers, the operational savings often justify the ~10-30% cost premium.
Where Standard wins
High sustained utilization with CUDs
Standard mode supports Committed Use Discounts on node compute. With 1-year CUDs at 37% off and 70%+ sustained utilization, Standard can be 40-50% cheaper than equivalent Autopilot for identical workloads.
Workloads requiring DaemonSets
Logging agents, monitoring agents, network policy enforcement, security scanners — all typically deployed as DaemonSets, one per node. Autopilot restricts DaemonSets to a small allowlist of system add-ons. Custom DaemonSets aren't supported.
GPU and specialized hardware
Autopilot supports a subset of GPU configurations. For NVIDIA A100, H100, or TPU workloads, Standard mode with specific node pool config is more flexible.
Spot heavy workloads at scale
Both modes support Spot, but Standard with Spot node pools and Karpenter-style autoscaling can be more granular than Autopilot's Spot scheduling. For workloads relying heavily on Spot, Standard gives more control.
The migration story
Switching between modes requires creating a new cluster (you can't toggle modes on an existing cluster). Standard practice:
- Stand up the new cluster in the target mode.
- Deploy your manifests. Adjust any DaemonSet usage if going to Autopilot.
- Cut traffic over via DNS or load balancer.
- Decommission the old cluster.
For most workloads, going from Standard to Autopilot is the common direction (operational simplification). Going from Autopilot to Standard happens when you hit a feature restriction.
How to estimate in c3x
For Standard clusters, c3x reads google_container_cluster + linked google_container_node_pool resources:
resource "google_container_cluster" "standard" {
name = "production"
location = "us-central1"
# Standard mode by default
# ...
}
resource "google_container_node_pool" "default" {
name = "default-pool"
cluster = google_container_cluster.standard.id
node_count = 3
node_config {
machine_type = "n2-standard-4"
}
}For Autopilot, set enable_autopilot = true on the cluster. Per-pod costs require pod specs in c3x-usage.yml:
# c3x-usage.yml
resource_usage:
google_container_cluster.autopilot:
monthly_pod_vcpu_hours: 7300 # 10 vCPU × 730 hours
monthly_pod_memory_gb_hours: 29200 # 40 GB × 730 hoursSee the google_container_cluster catalog page for full pricing dimensions.
FAQ
Is GKE Autopilot more expensive than Standard?
Per equivalent workload, usually yes — Autopilot is typically 10-30% more expensive at moderate utilization. But Autopilot wins when node utilization is low (you only pay per pod request, not per provisioned node). The crossover is around 30-50% sustained node utilization for Standard.
Does GKE Standard have a control plane fee like EKS?
Yes, $0.10/hour ($73/month) per cluster. But GKE includes one free zonal cluster per billing account, so the first cluster is free. Autopilot has the same per-cluster fee structure but bills entirely per pod (with no separate node compute charge).
Can I use Spot VMs with Autopilot?
Yes. Set cloud.google.com/gke-spot=true as a nodeSelector or use Spot in the deployment spec. Autopilot Spot pricing is roughly 60-90% off the regular Autopilot per-pod rate. Right for stateless workloads that tolerate eviction.
When should I use Standard mode instead of Autopilot?
Five cases: when you need GPU pods, custom node OS or DaemonSets, very predictable steady utilization where reserved compute is cheaper, very large clusters where per-pod billing accumulates, or specific scheduling constraints that Autopilot's restrictions don't allow.
Does Autopilot support every Kubernetes feature?
No. Autopilot restricts certain features: no DaemonSets (with rare exceptions for system add-ons), no privileged containers, no NodePort services, limited hostPath, no SSH access to nodes. If your workload needs any of these, Standard mode is required.
How does C3X estimate GKE cost?
For Standard clusters, c3x reads the cluster and any node pool definitions, applying GCE pricing to the node compute. For Autopilot clusters, c3x estimates the per-cluster control plane fee; per-pod costs require pod CPU/memory specifications via c3x-usage.yml.
The decision summary
- New cluster, unknown workload pattern: start with Autopilot. Operational simplicity is worth the modest premium.
- Production cluster with stable utilization above 60%: Standard + Committed Use Discounts wins on cost.
- Workload needs DaemonSets, GPUs, or custom OS: Standard.
- Dev/staging or small clusters: Autopilot. Single-zonal Autopilot can use the free first cluster + scale-to-zero benefits.
For the AWS equivalent comparison, see EKS vs ECS total cost comparison. For broader GCP cost estimation, see how to estimate GCP costs from Terraform.
Share this post
Try C3X on your own Terraform
Free and open source. No API key required. One command to install, one command to estimate.