Conceptly
← All Concepts
☸️

Google Kubernetes Engine

ComputeManaged Kubernetes Engine

Google Kubernetes Engine (GKE) is the orchestration system for teams that need Kubernetes to keep many containers scheduled, recovered, and exposed in a consistent way. It becomes the center of operations when container count, rollout rules, and service-to-service traffic are too complex to manage by hand.

Architecture Diagram

🔍 Structure

Dashed line animations indicate the flow direction of data or requests

Why do you need it?

Once you have more than a dozen containers, managing deployment, scaling, recovery, and networking by hand becomes impossible. And if you install Kubernetes yourself, operating the control plane and handling upgrades and security patches becomes yet another job.

Why did this approach emerge?

Running Kubernetes yourself means operating etcd clusters for state storage, performing control plane version upgrades across multiple nodes, and debugging TLS certificate rotations when they silently expire at 2 a.m. — all operational work completely unrelated to the applications teams were trying to ship. Each upgrade cycle risked downtime if any step went wrong, and smaller teams often fell behind on security patches because the upgrade process itself was too risky to run frequently. GKE removed that operational burden. Google manages the control plane, handles upgrades, and patches security vulnerabilities. Teams get a working Kubernetes API endpoint and spend their time on deployments, not cluster plumbing.

How does it work inside?

You write a Deployment manifest that declares "run 3 copies of this container." When you apply it, the control plane's scheduler looks at available capacity across the Node Pool (a group of VMs with the same configuration that actually run your containers) and assigns each copy — called a pod — to a node. If a pod crashes or its node goes down, the controller continuously compares the desired state (3 copies) against the actual state (now 2). It detects the mismatch and creates a replacement pod on a healthy node, without you intervening. To reach those pods, you create a Service — a stable network address that automatically routes traffic to whichever pods are healthy, regardless of which node they landed on. External traffic enters through an Ingress resource, which configures a load balancer to forward requests to the right Service. In Autopilot mode, even the Node Pool sizing is handled for you: GKE adds or removes nodes based on pod resource requests, so you only define workloads, not infrastructure.

What is it often confused with?

GKE and Cloud Run both run containers, but Cloud Run fully abstracts infrastructure and focuses on HTTP workloads. GKE provides the complete Kubernetes feature set: scheduling policies, service mesh, StatefulSets, and more. Use GKE when you need the Kubernetes ecosystem; use Cloud Run for straightforward container deployments.

When should you use it?

Ideal for microservices, advanced deployment strategies (canary, blue/green), stateful workloads, and leveraging Kubernetes ecosystem tools. Overkill for a small number of services running simple HTTP apps.

MicroservicesCI/CD pipelinesStateful workloadsMulti-cloud/hybrid