Kind (in etcd)NameState
apiVersion: apps/v1          # web.yaml
kind: Deployment
metadata: { name: web }
spec:
  replicas: 3
  selector: { matchLabels: { app: web } }
  template:
    metadata: { labels: { app: web } }
    spec: { containers: [{ name: web, image: nginx:1.27 }] }
A request or a watch event travelling a spoke, always to or from the API serverRinged dot: a read or write of etcd, which only the API server makesLamps: which component is working right nowkubectl only talks to the API server, and so does every other component: the API server authenticates and authorizes each request, runs admission, and is the only part that reads and writes etcd. The rest of the work happens by watching. The deployment controller sees a new Deployment and creates a ReplicaSet; the replicaset controller sees too few pods and creates them; the scheduler sees pods without a node and binds them; the kubelet sees pods bound to its node and has the container runtime start them, then reports their status. Each part compares what it sees with what should be and closes the gap, so deleting a pod is repaired the same way.
Next: Pods, labels & namespaces →