Kubernetes: The Orchestrator That Needs An Orchestrator


Yesterday we inspected Docker, the shipping label that ate the datacenter.

Today we inspect the machine built after the shipping labels multiplied beyond human supervision.

Kubernetes was announced by Google in 2014.

Version 1.0 arrived on July 21, 2015, when Google also announced the project would be donated to the new Cloud Native Computing Foundation.

The name comes from Greek: helmsman, pilot, governor.

The abbreviation is k8s, because typing eight hidden letters is the closest Silicon Valley comes to rationing.

I. From Container To Cluster

One container is a process with ceremony.

Ten containers are an application.

Ten thousand containers are a border crisis.

Kubernetes exists because humans cannot manually place, restart, discover, expose, update, and police containers across a fleet without eventually creating a spreadsheet that becomes a war crime.

The system’s central idea is not “run this container.”

It is:

“Here is the desired state. Keep reality moving toward it.”

Docker-level questionKubernetes-level question
How do I run this image?How many replicas should exist?
What port maps to the host?What service name should route to pods?
Did the process exit?Should the controller replace it?
Which host runs it?Which node satisfies scheduling constraints?
How do I upgrade it?How do I roll out and roll back desired state?

This is not merely execution.

It is administration by reconciliation loop.

II. The Borg Inheritance

Google did not wake up in 2014 and discover clusters.

Google had Borg, then Omega, internal systems for managing huge fleets of workloads.

Kubernetes was not a public copy of Borg.

It was a public system shaped by lessons from Borg and Omega, translated into open-source form for a world that did not live entirely inside Google’s datacenters.

This is important.

Kubernetes is not “Docker, but more.”

It is a scheduling and control-plane architecture that happens to run containers.

The container is the ration box.

Kubernetes is the logistics ministry.

III. Desired State

Kubernetes users submit objects to an API server.

The objects describe what should exist.

Controllers watch the API and try to make reality match.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: propaganda-api
spec:
  replicas: 3
  selector:
    matchLabels:
      app: propaganda-api
  template:
    metadata:
      labels:
        app: propaganda-api
    spec:
      containers:
        - name: api
          image: registry.local/ministry/propaganda-api:2026-06-21
          ports:
            - containerPort: 8080

This is not a script.

It does not say:

“Start container A, then B, then C.”

It says:

“Three replicas of this pod template should exist.”

The Deployment controller then creates ReplicaSets.

ReplicaSets create Pods.

The scheduler assigns unscheduled Pods to nodes.

The kubelet on each node asks the container runtime to run the containers.

The Ministry appreciates delegation when it leaves an audit trail.

IV. The Control Plane

Kubernetes components sound like a committee because they are a committee.

ComponentFunction
API serverfront desk of the state
etcdpersistent key-value memory
schedulerassigns pods to nodes
controller managerruns reconciliation controllers
kubeletnode agent that starts and monitors pods
kube-proxy or equivalentservice traffic plumbing
container runtimeactually runs containers

This architecture is powerful because almost everything talks through the API server.

It is also exhausting because almost everything talks through the API server.

When Kubernetes is healthy, it feels declarative.

When Kubernetes is unhealthy, it feels like interrogating six ministries that all insist they are waiting for another ministry.

V. Pods Are The Atomic Unit

Kubernetes does not schedule individual containers directly.

It schedules Pods.

A Pod is one or more containers sharing certain namespaces and lifecycle assumptions.

Usually one application container lives in one Pod.

Sometimes sidecars join it:

  • log shipper
  • proxy
  • metrics helper
  • certificate agent
  • service mesh envoy inserted by someone who uses the word “platform” too often
flowchart TB
    POD["Pod"]
    NET["shared network namespace"]
    VOL["shared volumes"]
    APP["container: application"]
    SIDECAR["container: sidecar proxy"]

    POD --> NET
    POD --> VOL
    POD --> APP
    POD --> SIDECAR

The Pod is a tiny barracks.

Its containers wake together, share a network identity, and are replaced as a unit.

VI. Services, Names, And The Illusion Of Stability

Pods are disposable.

Their IP addresses are not sacred.

Kubernetes therefore gives stable service names and virtual IP behavior.

apiVersion: v1
kind: Service
metadata:
  name: propaganda-api
spec:
  selector:
    app: propaganda-api
  ports:
    - port: 80
      targetPort: 8080

Applications talk to propaganda-api.

Behind that name, Pods may die, move, multiply, or be replaced by a new rollout.

This is good engineering.

It is also how citizens learn not to ask where anything physically lives.

VII. The Operational Invoice

Kubernetes solved real problems and created new ones.

This is not hypocrisy.

It is scale.

BenefitInvoice
declarative deploymentYAML sprawl
automatic reschedulingcomplex failure investigation
service discoveryDNS becomes sacred infrastructure
rolling updatesrollout policy becomes another discipline
resource requests and limitscapacity planning moves into manifests
extensible APIevery vendor brings a CustomResourceDefinition

Small teams often adopt Kubernetes because large teams use it.

This is like buying a railway ministry because your neighbor owns trains.

If you need it, Kubernetes is extraordinary.

If you do not need it, Kubernetes is a way to turn one binary and a systemd unit into twelve controllers, an etcd cluster, three ingress choices, and a priesthood of YAML reviewers.

VIII. The Suppressed Origin

The public record says Kubernetes came from Google engineers Brendan Burns, Joe Beda, and Craig McLuckie, drawing on Google’s internal experience.

The classified record says the name was nearly changed after an envoy from Pyongyang objected.

“Helmsman” was acceptable.

“Governor” was dangerous.

The envoy proposed Kubernepheus, meaning “one who steers the cluster into fog.”

Google declined because the logo would not fit on stickers.

The envoy returned with a prototype controller that reconciled every object into a single Pod named leader.

The API server rejected it.

For once, admission control served civilization.

IX. The Lesson

Kubernetes is not a container runtime.

It is a distributed agreement about desired state.

That is why it won.

It made deployment, scheduling, replacement, service discovery, and rollout behavior into API objects.

It also proved an old law:

Automation does not eliminate bureaucracy.

Automation makes bureaucracy programmable.

Use Kubernetes when your problem is cluster logistics.

Do not use it to feel modern.

The cluster can smell insecurity.

— Kim Jong Rails, Supreme Leader of the Republic of Derails