TWO KINDS OF MACHINE
- kube-apiserverthe API
- etcdstores cluster state
- kube-schedulerpicks nodes for Pods
- kube-controller-managerruns control loops
- kubelet
- kube-proxy
- containerd 2.3.4
- kubelet
- kube-proxy
- containerd 2.3.4
- kubelet
- kube-proxy
- containerd 2.3.4
A Kubernetes cluster is a , which stores the cluster’s state and acts on it, plus worker nodes, which run your containers. A node is any machine running a kubelet, the agent chapter 04 follows. The unit Kubernetes places on a node is a : one or more containers that share one IP address.
This cluster comes from kind (Kubernetes in Docker) v0.33.0, which built three nodes as three Docker containers in 22.8 seconds: kind-control-plane, kind-worker and kind-worker2, running Kubernetes v1.37.0, released on 26 August 2026. In chapter 07, stopping one of those containers is how a node loses power.
The control plane carries a taint, node-role.kubernetes.io/control-plane:NoSchedule. A taint repels every Pod that doesn’t explicitly tolerate it, so none of your Pods will run there. Chapter 03 shows the scheduler applying that rule.
# kind create cluster --config kind.yaml (22.8 s on a laptop)
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane # kind-control-plane
- role: worker # kind-worker
- role: worker # kind-worker2