Kubernetes
k8s
What it is
Kubernetes is an orchestrator: you declare how many copies of a container should run, how they should be reachable and what resources they need, and it works continuously to make reality match. It schedules containers across a pool of machines, restarts what fails, replaces what disappears and rolls out new versions gradually. It is a platform for running other people’s software, and most of what it does is failure handling.
Why it matters
Running containers by hand on a handful of machines stops working as soon as a machine dies, a version must be rolled out without downtime, or demand changes faster than someone can log in. Kubernetes automates exactly those problems, and it does so with a declarative interface: the desired state lives in version control, and the cluster is a reconciliation loop away from matching it. The cost is substantial — a cluster is a distributed system with its own vocabulary, failure modes and operational burden — so it pays off when the workload is genuinely dynamic or the team needs a uniform deployment target, and it is heaviness when a single container on a single host would do.
In this track
- The object model (06-cloud-devops/14-kubernetes/01-the-object-model) — pods, deployments and services, and how they compose.
- Scheduling and scaling (06-cloud-devops/14-kubernetes/02-scheduling-and-scaling) — how work is placed on nodes and how capacity grows and shrinks.
- Configuration and secrets (06-cloud-devops/14-kubernetes/03-configuration-and-secrets) — separating the image from the environment it runs in.
- Self-healing and observability (06-cloud-devops/14-kubernetes/04-self-healing-and-observability) — what the cluster does when things break, and how you find out.
Prerequisites
- Docker (06-cloud-devops/06-docker)
Go deeper
- Docker (06-cloud-devops/06-docker) — the packaging step this orchestrator builds on, so read it first.
- Helm (06-cloud-devops/21-helm) — how groups of manifests are packaged and versioned once there are many of them.
- Cloud-Native Computing (06-cloud-devops/13-cloud-native-computing) — the design habits that make a workload a good fit for this kind of platform.