You are viewing a free preview of this lesson.
Subscribe to unlock all 10 lessons in this course and every other course on LearningBro.
A GKE cluster consists of a control plane and one or more worker nodes. Understanding how these components interact is essential for designing, troubleshooting, and optimising your Kubernetes workloads on Google Cloud.
The control plane is the brain of the Kubernetes cluster. In GKE, the control plane is fully managed by Google — you do not provision, patch, or maintain it. Google guarantees its availability with a financially-backed SLA.
| Component | Role |
|---|---|
| kube-apiserver | The front door — all communication with the cluster goes through the API server |
| etcd | Distributed key-value store that persists all cluster state |
| kube-scheduler | Assigns pods to nodes based on resource requirements, affinity rules, and constraints |
| kube-controller-manager | Runs controllers that reconcile desired state with actual state (e.g., ReplicaSet controller, Node controller) |
| cloud-controller-manager | Integrates with Google Cloud APIs (load balancers, routes, disks) |
| Cluster Type | Control Plane Availability |
|---|---|
| Zonal cluster | Single control plane in one zone — if the zone goes down, the control plane is unavailable |
| Regional cluster | Three control plane replicas across three zones — survives zone failures |
Google recommends regional clusters for production workloads.
Worker nodes are Compute Engine VMs that run your containerised workloads. Each node runs:
| Component | Role |
|---|---|
| kubelet | Agent that communicates with the control plane, manages pod lifecycle, and reports node status |
| kube-proxy | Manages network rules for Service routing (iptables or IPVS) |
| Container runtime | Runs containers — GKE uses containerd |
| Container-Optimized OS | A minimal, hardened operating system built by Google specifically for running containers |
Not all of a node's CPU and memory is available for your pods. GKE reserves resources for system daemons (kubelet, OS processes, etc.):
| Resource | Reserved For |
|---|---|
| CPU | kubelet, kube-proxy, OS daemons, eviction threshold |
| Memory | kubelet, OS kernel, eviction threshold (100 MiB default) |
| Ephemeral storage | System logs, container images, OS files |
Use kubectl describe node <node-name> to see the allocatable resources for each node.
Subscribe to continue reading
Get full access to this lesson and all 10 lessons in this course.