coldwa.st
All guidesProgrammingWebDataToolsDatabasesHaskellConceptsCabal & buildsToolchainCompilerPerformanceEditor & HLS

Programming Β· DevOps Β· orchestration

What is Kubernetes?

By ColdwastUpdated Jun 19, 20268 min read#kubernetes#containers#devops
An old wooden ship's steering wheel, the helm
A ship's steering wheel β€” the helm. "Kubernetes" is Greek for helmsman, and the project's logo is a ship's wheel: the system that steers a fleet of containers.

Once you package an app into a container, a new problem appears: who starts it, restarts it when it crashes, runs more copies under load, and connects them all together β€” across dozens of machines? That job is orchestration, and Kubernetes is the system most teams use to do it. This guide explains what Kubernetes is, the concepts that matter, how it relates to Docker, and when you actually need it.

The short definition

Kubernetes is an open-source platform for running and coordinating containers across a group of machines. You tell it the desired state β€” "run five copies of this app, keep them healthy, expose them on this address" β€” and Kubernetes works continuously to make reality match that description: placing containers on machines, restarting failed ones, scaling up and down, and routing traffic to them. It's often shortened to K8s (K, eight letters, s).

The problem it solves

Running one container by hand is easy. Running hundreds, reliably, is not. Machines fail, traffic spikes, new versions need rolling out without downtime, and containers must find and talk to each other. Doing all that manually is error-prone and doesn't sleep. Kubernetes turns it into a declarative system: you describe what you want, and the platform's control loop keeps enforcing it β€” replacing a crashed container or rescheduling work off a dead machine without anyone paging an engineer at 3 a.m.

Rows of illuminated server racks inside a data center
Rows of servers in a data center β€” Kubernetes treats a group of machines like this as one pool and schedules containers across all of them.

The core concepts

  • Cluster β€” the whole system: a set of machines Kubernetes manages as one. It has a control plane (the brain that makes decisions) and worker nodes (where your containers actually run).
  • Node β€” a single machine (physical or virtual) in the cluster that runs containers.
  • Pod β€” the smallest unit Kubernetes runs: one or more tightly-coupled containers sharing storage and a network address. You usually run many identical pods of an app.
  • Deployment β€” a declaration of the desired state for your pods: which image, how many replicas, and how to roll out updates. Kubernetes makes the live state match it.
  • Service β€” a stable network address and load balancer for a set of pods, so other parts of the system can reach them even as individual pods come and go.

How it works, briefly

You submit a description of what you want β€” usually a YAML file defining a deployment and a service. The control plane records this desired state and schedules pods onto nodes that have room. A control loop then constantly compares desired versus actual state: if a pod dies or a node fails, Kubernetes notices and recreates the missing pods elsewhere. Scaling is the same idea β€” change "5 replicas" to "20" and the scheduler fills the gap. This self-healing, declarative model is the heart of why Kubernetes is trusted with production systems.

Kubernetes vs Docker

They're complementary, not rivals. Docker builds and runs an individual container on one machine. Kubernetes orchestrates many containers across many machines β€” scheduling, scaling, healing and networking them. Docker packages and runs a container; Kubernetes manages a fleet of them. Kubernetes runs containers built to the open standards Docker popularised, so the two sit at different layers of the same stack rather than competing.

Do you actually need it?

Honestly, often not β€” at least not yet. Kubernetes shines when you run many services, need high availability, and have the team to operate it. For a single app or a small project, it's usually overkill: a single server, a managed container service, or a platform-as-a-service will be simpler and cheaper. The cost of Kubernetes is real complexity β€” networking, storage, security and upgrades all take expertise. Adopt it when the scale justifies the overhead, not because it's fashionable.

Managed vs self-hosted

You can run Kubernetes yourself, but most teams use a managed service where a cloud provider operates the control plane for you, so you only manage your workloads. That removes a large chunk of the operational burden and is the sensible default for most projects that genuinely need orchestration.

Recommended

Somewhere to run your containers

Kubernetes (and Docker) need machines to run on. A VPS or cloud server gives you full control of the runtime to deploy containers, a cluster, or a single app. Infomaniak β€” a Swiss, privacy-respecting provider β€” offers VPS and cloud servers for exactly this.

See Infomaniak Cloud β†’

Affiliate link β€” it supports these free guides.

Containers usually expose an API and talk to each other over protocols like gRPC or REST. Browse more clear explainers in our guides index.

Frequently asked questions

What is Kubernetes in simple terms?

Kubernetes is software that runs and manages containers across a group of machines for you. You describe the state you want β€” how many copies of an app to run and how to reach them β€” and Kubernetes keeps reality matching that, restarting failed containers, scaling them, and routing traffic automatically.

What is the difference between Docker and Kubernetes?

Docker builds and runs an individual container on one machine. Kubernetes orchestrates many containers across many machines β€” scheduling, scaling, restarting and networking them. Docker handles a single container; Kubernetes manages a fleet. They are complementary: Kubernetes runs containers built to the standards Docker popularised.

What is a pod in Kubernetes?

A pod is the smallest unit Kubernetes runs: one or more closely-related containers that share storage and a network address. Applications typically run as many identical pods, which Kubernetes can scale up or down and replace automatically if one fails.

Do I need Kubernetes for a small project?

Usually not. Kubernetes is built for running many services at scale with high availability, and it adds real operational complexity. For a single app or small project, a single server, a managed container service, or a platform-as-a-service is simpler and cheaper. Adopt Kubernetes when your scale justifies the overhead.

Independent, community-maintained guide. coldwa.st is a programming-resources site; this article is new, original explanatory writing about Kubernetes and container orchestration. Examples reflect widely-used tools; verify specifics against the official Kubernetes documentation.