Foundations overview

What Is Kubernetes?

● Beginner ⏱ 10 min read overview

Kubernetes (often abbreviated K8s) is an open-source container orchestration system for automating deployment, scaling, and management of containerized applications. It groups containers that make up an application into logical units for easy management and discovery. Originally designed by Google and now maintained by the Cloud Native Computing Foundation (CNCF), Kubernetes has become the de-facto standard for running containers at scale.

📚
Official Reference

This guide references kubernetes.io/docs/concepts/overview/. Always cross-check with the official docs for the version you're running.

The Problem Kubernetes Solves

Before container orchestration, scaling a web application meant manually provisioning servers, SSH-ing in, installing dependencies, starting processes, and crossing your fingers nothing crashed. When it did crash, someone got paged at 2am.

Containers (popularised by Docker in 2013) solved the "it works on my machine" problem by packaging an application with its runtime, libraries, and config into an immutable image. But containers don't manage themselves. When you have hundreds or thousands of containers across dozens of hosts, you need something to answer questions like:

Kubernetes answers all of these questions.

History & Origins

Kubernetes was born from over a decade of Google's internal experience running containerised workloads. Google had been running Borg, its internal cluster management system, since around 2004. Borg ran Google's production workloads — Search, Gmail, Maps — at massive scale. A redesign of Borg's lessons led to Omega, a more flexible scheduler.

In 2013, three Googlers — Joe Beda, Brendan Burns, and Craig McLuckie — started a new project to bring Borg-style orchestration to the outside world. The project was announced publicly in June 2014 and released as open source. Google donated it to the newly-formed Cloud Native Computing Foundation (CNCF) in 2016.

The name "Kubernetes" comes from the Greek word for helmsman or pilot. The "K8s" abbreviation replaces the eight middle letters with the number 8.

YearMilestone
2004Google internally starts Borg cluster manager
2013Docker released publicly; container adoption explodes
2014Kubernetes announced and open-sourced by Google
2016Kubernetes donated to CNCF; v1.0 released
2018CNCF graduates Kubernetes (first ever graduation)
2020+Kubernetes becomes the default for cloud-native workloads

What Kubernetes Does

Kubernetes provides a framework to run distributed systems resiliently. It handles scaling and failover for your application, provides deployment patterns, and more. Specifically, Kubernetes provides:

What Kubernetes Is Not

It's equally important to know what Kubernetes deliberately does not do:

⚠️
K8s Has Real Complexity

Kubernetes' power comes with operational complexity. For a simple web app with a single service, a PaaS like Heroku, Railway, or Render is probably the right choice. Kubernetes shines when you have many microservices, multiple teams, need fine-grained resource control, or are running stateful workloads at scale.

Use Cases

Kubernetes is appropriate when you need: