← Back to recent posts
Google Cloud

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.