---
title: "Kubernetes in simple terms"
chapter: "01"
---

# Kubernetes in simple terms

Kubernetes is a continuous correction machine. You declare **desired state**.
Controllers compare it with **actual state** and keep trying to close the gap.

## The smallest useful vocabulary

| Object | Plain meaning |
|---|---|
| Pod | Smallest scheduled unit; normally one application container |
| Deployment | Keeps stateless Pods running and rolls out versions |
| StatefulSet | Stable names and ordered behavior for stateful Pods |
| DaemonSet | Runs one Pod on selected nodes |
| Job / CronJob | Finite or scheduled work |
| Service | Stable address for changing Pods |
| Gateway / Ingress | Routes application traffic |
| Namespace | Scope for names, quota, RBAC, and policy |
| ConfigMap / Secret | Configuration and sensitive values |

Labels identify objects. Selectors choose objects. A wrong selector can send
traffic to the wrong Pods or leave a controller managing nothing.

## Requests, limits, and health

A resource **request** is what the scheduler reserves. It drives placement,
capacity, and cost. A **limit** is an upper boundary. Measure both; guesses
create waste, CPU throttling, or memory kills.

- Startup probe: “I am still starting.”
- Readiness probe: “Do not send me traffic yet.”
- Liveness probe: “I am stuck and a restart can fix me.”

Do not make liveness depend on a slow database. Restarting every Pod during a
database incident makes the incident larger.

## Feynman check

If three of five replicas disappear, a Deployment sees that actual state is
smaller than desired state and creates three replacements. Kubernetes restores
objects; it does not restore lost business data.
