Cloud Run vs GKE: When to Pick Which
Cloud Run is a request-scoped container with a URL. GKE is a cluster you operate. Pick Run when the unit of work is a request and you want scale-to-zero. Pick GKE when you need sidecars, DaemonSets, or a mesh you already run on EKS/AKS.
Choose Cloud Run when
- Traffic is spiky and idle should cost nearly nothing.
- You can live with a 15-minute (or configured) request timeout and a single container.
- You do not need hostPorts, privileged pods, or a custom CNI.
Choose GKE when
- You already standardized on Helm, Argo CD, and Prometheus.
- Workloads are long-running, GPU, or need node-level agents.
- You need NetworkPolicy, Gateway API, or a service mesh as a platform feature.
A boring decision rule
If the team’s on-call already knows kubectl, and the app needs a sidecar or a PVC, start on GKE. If the app is a stateless API and you do not want a node pool bill on Sunday, start on Cloud Run. Revisit when the first “we need a DaemonSet” ticket appears.