GKE offers two cluster modes: Autopilot and Standard. The mode you choose determines who manages the nodes, how you’re billed, and how much control you have over the underlying infrastructure.
Mode Comparison
| Aspect | Autopilot | Standard |
|---|---|---|
| Node management | Google manages all nodes | You manage node pools |
| Billing | Pod resource requests + $0.10/hr cluster management fee | Compute Engine VMs + $0.10/hr cluster management fee |
| Node visibility | Nodes exist but are abstracted | Full access to node configuration |
| Idle node behavior | Can scale to zero nodes when no workloads are running | You configure node pool minimums |
| Machine type selection | Google optimizes per workload | You choose machine types |
| OS image | Google-managed (Container-Optimized OS) | You choose: COS, Ubuntu, etc. |
| SSH to nodes | Not available | Available |
| Node-level SSH/customization | Not supported | Full access |
| Security posture | Hardened by default | You configure hardening |
| Kubernetes version | Auto-managed within release channel | Auto or manual |
| Best for | Most workloads, hands-off operations | Custom hardware, specific OS, daemon sets |
Decision Flow
flowchart TD START["Need a GKE Cluster"] --> Q1{"Do you need custom node OS,<br>SSH access, or unsupported hardware?"} Q1 -->|Yes| Q2{"Do you need daemon sets<br>on every node?"} Q1 -->|No| AUTO["Choose Autopilot"] Q2 -->|Yes| STD["Choose Standard"] Q2 -->|No| Q3{"Do you need to control<br>exact node count and sizing?"} Q3 -->|Yes| STD Q3 -->|No| AUTO style AUTO fill:#4CAF50,color:#fff style STD fill:#2196F3,color:#fff
When to Choose Autopilot
Autopilot is the right choice for most workloads. Choose it when:
- You want to focus on application code, not infrastructure management
- Your workloads use standard container images
- You want predictable, per-pod billing
- You don’t need SSH access to nodes
- You want security hardening by default
- You want automatic scaling without configuring node pools
Key Insight: In Autopilot, you define what your pods need (CPU, memory) and Google provisions the right nodes. You never think about VMs.
When to Choose Standard
Choose Standard when you need:
- Hardware or accelerator configurations unavailable or constrained in Autopilot
- Custom OS images or kernel modules
- SSH access to nodes for debugging
- DaemonSets that need host-level access or unsupported node privileges
- Exact control over node count and machine types
- Spot/Preemptible VMs for batch workloads (though Autopilot now supports Spot pods)
- Privileged containers or host-level access
Cost Comparison
Standard Cluster Costs
Total = Cluster Management Fee + (Node VM Costs × Node Count)As of May 2026:
| Component | Cost |
|---|---|
| Cluster management fee | 73/month) |
| GKE free tier | $74.40/month credit per billing account for Autopilot or zonal Standard cluster fees |
| Regional Standard clusters | Cluster fee applies; free tier credit does not apply |
| Node VMs | Compute Engine pricing (varies by machine type) |
Example Standard cluster cost (3 × e2-medium in us-central1):
| Item | Monthly Cost |
|---|---|
| Cluster fee | $73.00 |
| 3 × e2-medium ($24.27/mo each) | $72.81 |
| Total | ~$146/month |
Autopilot Cluster Costs
Total = Cluster Management Fee + Sum of running pod CPU, memory, and ephemeral storage requestsAs of May 2026, for default general-purpose Autopilot workloads in us-central1:
| Resource | On-Demand Price | Spot Price |
|---|---|---|
| CPU | $0.0445/vCPU-hour | $0.0133/vCPU-hour |
| Memory | $0.0049225/GiB-hour | $0.0014767/GiB-hour |
| Ephemeral storage | $0.0001389/GiB-hour | $0.000076395/GiB-hour |
| Cluster fee | $0.10/hour, offset by the monthly GKE free tier credit when eligible | Same |
Note: Autopilot pricing is based on what you request for your pods, not actual usage. Setting accurate resource requests directly affects your bill.
Example Autopilot cost (5 pods, each 0.5 vCPU, 1 GB memory):
| Item | Monthly Cost |
|---|---|
| 5 × 0.5 vCPU × $0.0445/hr × 730hrs | ~$81.21 |
| 5 × 1 GiB × $0.0049225/hr × 730hrs | ~$17.97 |
| Cluster fee | ~$73/month before applicable GKE free tier credit |
| Total | ~172/month without it |
Cost Decision Guide
| Scenario | Cheaper Option |
|---|---|
| Small clusters (1-5 nodes) with variable workloads | Autopilot (pay for pod requests, no idle node cost) |
| Large clusters with consistent, high utilization | Standard (pack pods tightly on VMs) |
| Development/staging (off-hours) | Autopilot (can scale to zero nodes, no idle node cost) |
| GPU workloads | Depends on GPU type availability |
| Batch/spot workloads | Both offer Spot options — compare |
Zonal vs Regional Clusters
Autopilot clusters are regional. For Standard clusters, you choose whether the control plane is zonal, multi-zonal, or regional.
| Aspect | Zonal | Regional |
|---|---|---|
| Control plane | Runs in one zone | Replicated across 3 zones |
| Nodes | In one zone | Distributed across 3 zones |
| Availability | Single zone failure = cluster down | Survives single zone failure |
| Cost | Lower node cost for small clusters | Higher VM cost if you run nodes in multiple zones; cluster management fee is the same |
| Recommended for | Development, testing | Production workloads |
flowchart LR subgraph Zonal["Zonal Cluster"] Z1["Zone: us-central1-a"] CP1["Control Plane"] N1["Nodes"] end subgraph Regional["Regional Cluster"] Z2a["Zone: us-central1-a"] Z2b["Zone: us-central1-b"] Z2c["Zone: us-central1-c"] CP2["Control Plane (replicated)"] N2a["Nodes"] N2b["Nodes"] N2c["Nodes"] end
Tip: Use regional Standard clusters for production when you need control plane high availability. Size node pools intentionally because regional clusters can create nodes across multiple zones.
Multi-Zonal Clusters
There is also a multi-zonal option where the control plane runs in one zone but nodes span multiple zones:
| Feature | Zonal | Multi-Zonal | Regional |
|---|---|---|---|
| Control plane replicas | 1 zone | 1 zone | 3 zones |
| Node distribution | 1 zone | Multiple zones | 3 zones |
| Control plane HA | No | No | Yes |
| Node HA | No | Yes | Yes |
Converting Between Modes
You cannot convert an existing Standard cluster to Autopilot or vice versa. To switch modes:
- Create the new cluster in the desired mode
- Migrate workloads using Kubernetes manifests or Helm charts
- Update DNS/load balancer to point to the new cluster
- Delete the old cluster
Warning: Plan the migration carefully. Test the new cluster with production-equivalent workloads before cutting over.
TL;DR
- Autopilot: Google manages nodes, you pay per pod, security hardened by default — best for most workloads
- Standard: You manage nodes, you pay per VM, full control — best for custom hardware or node-level requirements
- Autopilot clusters are regional; use regional Standard clusters for production when you need Standard mode
- You cannot convert between modes — choose wisely upfront
- Cost comparison depends on utilization: Autopilot favors variable workloads, Standard favors consistently packed nodes