Appearance
GKE Autopilot Overview
Autopilot is a managed mode of operation in Google Kubernetes Engine (GKE) where Google manages your infrastructure configuration, including nodes, scaling, security, and other preconfigured settings.
What is Autopilot?
Autopilot mode is optimized to run most production workloads, and provisions compute resources based on your Kubernetes manifests. You can run an entire cluster in Autopilot mode, or run specific workloads in Autopilot mode within GKE Standard clusters.
Benefits
Key Benefits Summary
| Benefit | Description |
|---|---|
| Focus on Apps | Google manages infrastructure; you build and deploy applications |
| Security | Default hardened configuration with automatic security patches |
| Pricing | Simplified billing forecasts and attribution |
| Node Management | No need to create nodes or configure upgrades |
| Scaling | Automatic node provisioning with HPA support |
| Resource Management | Pre-configured defaults if not specified |
| Networking | Network security features enabled by default |
| Release Management | Automatic enrollment in release channels |
Container-Optimized Compute Platform
In GKE version 1.32.3-gke.1927002 and later, Autopilot includes a specialized container-optimized compute platform:
Platform Benefits
- Compute capacity matches workloads: Dynamically adjusts based on Pod count and resource consumption
- Fast scaling times: Dynamic resizing means Pods don't need to wait for new nodes
Pricing Model
| Workload Type | Billing Model | Example |
|---|---|---|
| General-purpose Pods | Pod-based | Container-optimized platform, Balanced/Scale-Out ComputeClasses |
| Specific hardware Pods | Node-based | GPU workloads, specific machine series |
Planning Your Clusters
Networking Options
| Use Case | Solution |
|---|---|
| Expose apps to internet | Use Services |
| Internal communication | Configure Network Policies |
| Multi-cluster connectivity | Use Multi-cluster Services (MCS) |
| External HTTP(S) traffic | Use Ingress for Application Load Balancers |
| Internal traffic | Use Internal Load Balancers |
| Network security | GKE Dataplane V2 with network policies |
Scaling Configuration
Key Points:
- Autopilot automatically scales nodes based on Pod count
- Clusters can scale down to zero nodes with no running workloads
- Use Horizontal Pod Autoscaling for automatic Pod scaling
Security Features
Autopilot clusters enable security best practices by default:
Deploying Workloads
Workload Deployment Options
| Use Case | Solution |
|---|---|
| Control node properties | Create custom ComputeClass |
| Run Autopilot in Standard cluster | Use Autopilot ComputeClass |
| Run Arm workloads | Request Arm CPU machine series |
| AI/ML workloads | Request GPUs in manifest |
| Batch jobs at lower cost | Use Spot Pods or autopilot-spot ComputeClass |
| Minimal disruptions | Use safe-to-evict=false annotation |
| Pod bursting | Set limits higher than requests |
Workload Separation
Pod Scheduling Controls
| Feature | Description |
|---|---|
| Zonal Topology | Place Pods in specific Google Cloud zones |
| Pod Affinity | Colocate Pods on same nodes |
| Pod Anti-affinity | Spread Pods across nodes |
| Topology Spread | Control Pod distribution across topology domains |
Managing and Monitoring
Version Upgrades
All Autopilot clusters are enrolled in a GKE release channel:
- Rapid: Latest features
- Regular: Balanced stability (default)
- Stable: Most tested versions
Monitoring
Autopilot clusters have built-in observability:
| Type | Features |
|---|---|
| Logs | System logs, Workload logs, Audit logs |
| Metrics | System metrics, Workload metrics (via Prometheus) |
| Dashboards | GKE dashboard, Observability dashboard |
| Security | Security posture dashboard |
Quick Start
bash
# Create an Autopilot cluster
gcloud container clusters create-auto my-autopilot-cluster \
--region=us-central1
# Get credentials
gcloud container clusters get-credentials my-autopilot-cluster \
--region=us-central1
# Deploy a workload
kubectl create deployment hello-server \
--image=us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
# Expose the deployment
kubectl expose deployment hello-server \
--type=LoadBalancer \
--port=80 \
--target-port=8080Last updated: December 2025