GKE
Service 02

Google Kubernetes Engine

ComputeContainersManaged

Google Kubernetes Engine is the managed Kubernetes service from the company that created Kubernetes and released it as open source in 2014. GKE handles the infrastructure work that Kubernetes requires: provisioning and upgrading the control plane, patching node operating systems, integrating with Google Cloud networking and identity, and providing tooling for multi-cluster operations.

You write manifests describing desired application state; Kubernetes continuously reconciles actual state toward it. Failed pods are replaced, rolling updates are coordinated, and new replicas are scheduled as load grows — all automatically.

Autopilot vs Standard Mode

GKE Autopilot is the recommended starting point for new clusters. Google manages every aspect of the nodes: their size, count, OS, patching, and security hardening. You pay for the CPU and memory your pods request, billed per second — so tuning resource requests, not just actual usage, is what controls the bill. Autopilot enforces security best practices by default — privileged containers are blocked, and Workload Identity is the only authentication mechanism for pod-to-Google-API calls.

GKE Standard keeps node management on your team. You choose node machine types, configure node pools, and are responsible for upgrades. Use it when you need custom node images, OS-level access, fine-grained node-pool control, or networking configurations that Autopilot does not support. GPUs and TPUs are no longer a reason to pick Standard — Autopilot provisions and scales both.

Cluster Architecture

Regional Cluster — Control Plane Across Three Zones
Region · us-central1
Control plane — replicated across all three zones (Google-managed)
us-central1-anodenode
us-central1-bnodenode
us-central1-cnodenode
Losing one zone does not take down the regional control plane; workloads survive it only if their replicas are spread across zones. A zonal cluster gives neither guarantee.

Every GKE cluster has a control plane (managed by Google) and one or more node pools. In Standard mode, zonal clusters have a single-zone control plane while regional clusters replicate the control plane across three zones. The cluster management fee is the same flat rate for both topologies, so regional clusters provide HA for the control plane at no extra control-plane cost — though only a single zonal or Autopilot cluster qualifies for the free-tier credit. For production HA workloads, default to regional clusters; zonal is acceptable for dev, batch, and cost-sensitive workloads that can tolerate a zone outage.

Node Pools

A node pool is a group of nodes sharing the same machine type, OS image, and configuration. Multiple node pools let you route different workload types to appropriate hardware. Node Auto-Provisioning (NAP) creates and deletes node pools automatically based on pod resource requests. Spot node pools reduce node costs by up to 91%, requiring pods to tolerate interruption.

Release Channels and Upgrades

GKE offers four release channels. Rapid gets the newest Kubernetes versions first — useful for testing, not production. Regular (recommended for most) follows a few weeks behind Rapid, balancing freshness and stability. Stable follows Regular by another few months. Extended adds paid support for older versions beyond standard end-of-life. Enroll in Regular and GKE handles minor version upgrades automatically within a maintenance window you configure.

Networking

VPC-native clusters assign pod IP addresses directly from the VPC subnet using alias IP ranges. Always use VPC-native mode. Private clusters have nodes with no public IP addresses. GKE Dataplane V2 uses eBPF via Cilium for pod networking and is the recommended dataplane for new clusters. Network policies restrict pod-to-pod communication — enable them and default to deny-all ingress.

Identity and Security

Workload Identity maps a Kubernetes service account to a Google IAM service account, letting pods authenticate without mounted key files. Enable it and enforce it — mounted key files in etcd and pod specs are a key management problem. Binary Authorization enforces which container images can be deployed, ensuring only CI-signed images reach production.

Autoscaling

  • Horizontal Pod Autoscaler (HPA): adjusts replica count based on CPU, memory, or custom metrics.
  • Vertical Pod Autoscaler (VPA): adjusts pod resource requests/limits based on observed usage.
  • Cluster Autoscaler: adds or removes nodes based on pending pods and underutilization.
When to use GKE vs Cloud Run

GKE — multiple services requiring coordinated networking, stateful workloads with complex storage, teams with Kubernetes expertise, GPU scheduling, fine-grained resource management across many services.

Cloud Run — containerized HTTP services and event-driven workloads. If your system has fewer than 10 services and a small team, Cloud Run is almost certainly the better choice over GKE.

Common Mistakes
  • Not enrolling in a release channel — outdated nodes accumulate CVEs and fall out of support.
  • Not enabling Workload Identity, leaving pods authenticating with mounted key files stored in etcd.
  • Granting overly broad IAM roles to pod service accounts.
  • Using zonal clusters in production — losing the zone loses your control plane.
  • Not setting pod resource requests, confusing the scheduler and making autoscaling unpredictable.
  • Ignoring Pod Disruption Budgets, allowing too many pods to be evicted simultaneously.
Best Practices
  • Start with Autopilot unless you have a concrete reason not to.
  • Use regional clusters in production — always.
  • Enable Workload Identity on every cluster. Never mount service account key files.
  • Enroll in the Regular release channel with configured maintenance windows.
  • Enable GKE Dataplane V2 and network policies. Default to deny-all ingress.
  • Set CPU and memory requests on every pod.
  • Use Config Sync or a GitOps equivalent for cluster configuration management.
Comparable services AWS EKS Azure AKS

Knowledge Check

Which GKE mode is recommended as the starting point for new clusters?

  • GKE Standard, for maximum control over nodes
  • GKE Autopilot
  • GKE Lite, optimized for development
  • GKE Enterprise, for production workloads

Why should you use regional clusters instead of zonal clusters in production?

  • Regional clusters are cheaper than zonal clusters
  • Regional clusters replicate the control plane across three zones — losing one zone does not lose the cluster
  • Regional clusters allow a far higher per-cluster node-pool and node-count quota than zonal clusters do
  • Regional clusters have faster pod startup times because the control plane is spread closer to every worker node

What does Workload Identity do in GKE?

  • It encrypts all pod-to-pod network traffic within the cluster
  • It maps a Kubernetes service account to a Google IAM service account, letting pods authenticate to Google APIs without key files
  • It enforces cluster-wide network policies restricting which pods can communicate, denying all other pod-to-pod traffic by default
  • It scans every container image for known CVEs and blocks the deployment of any image that fails the policy check

Which GKE release channel is recommended for most production workloads?

  • Rapid — to get new Kubernetes versions as soon as they are released
  • Regular — balances freshness and stability
  • Stable — follows Regular by several additional months
  • Extended — for paid long-term support of older versions

What does the Horizontal Pod Autoscaler (HPA) adjust?

  • The CPU and memory allocated to individual pods
  • The number of replica pods, based on CPU, memory, or custom metrics
  • The number of nodes in the cluster
  • Traffic routing percentages split across different pod versions during a rollout

What is a Spot node pool?

  • A reserved, guaranteed pool of nodes set aside for critical, latency-sensitive production workloads
  • Interruptible nodes that can be reclaimed by Google with 30-second notice, at up to 91% lower cost
  • Nodes optimized for storage-intensive workloads
  • Nodes located in a specific zone for minimum latency

You got correct