Before you can read the parent note Kubernetes — pods, deployments, services, ingress (concepts) without tripping, you need a small pile of ideas. This page builds each one from nothing, in an order where every idea rests on the one before it. No symbol appears before it is earned.
Picture two identical shelves side by side. The left shelf is a drawing of what you asked for. The right shelf is a photo of reality. If they don't match, something must act.
The minus sign− here does not mean subtract-numbers. It means "find the difference between two situations" — like spotting what changed between the two shelves in the picture above. Read it as "the gap".
f(…) means "a function of" — a machine that takes an input on the inside of the brackets and produces an output. Picture a box: you drop the gap in the top, an action falls out the bottom.
act = the output: the concrete thing Kubernetes does (start a Pod, kill a Pod, wire up a route).
Recall Why can't the gap "run out"?
Because the loop never ends — the function is re-evaluated continuously ::: as long as reality drifts, a new gap appears and a new action follows.
Kubernetes is declarative. This is not a style choice — it is forced by the reconciliation loop of §1. To re-check the gap forever, the system must always know the goal (desired state). If you only gave it steps, once the steps finished it would have nothing left to compare against.
See Declarative vs Imperative Programming to go deeper on this distinction — it's the mental model the entire topic runs on.
Picture a shipping container: the crane (the machine) doesn't care what's inside — it just moves the standard box. Kubernetes is the crane operator for thousands of these boxes.
This is the most under-explained idea in the parent note, so we build it carefully.
Imagine a crowd where some people wear a yellow badge saying app=cart. A selector is you shouting "everyone with a yellow app=cart badge, over here!" — you never call people by name; you call by badge.
Recall A Service scaled from 3 to 8 Pods. Did you edit the Service?
No ::: the 5 new Pods carry the same app=cart label, so the selector picks them up automatically.
Picture one queue feeding four checkout counters: a manager waves each customer to whichever counter is free. The manager is the load balancer. See Load Balancing.
Read it bottom-up in the parent note: Containers make Pods, Deployments keep the right number of Pods, Services give Pods a stable front door, and Ingress routes outside traffic to the right Service.