What is Kubernetes? How it works, in plain terms

What is Kubernetes? It's free, open source software that runs and manages containerized apps across a group of machines called a cluster. You tell Kubernetes what you want running, and it starts the containers, restarts them when they fail and spreads traffic between them.

Last updated November 5, 2026

Blue title card with the Kubernetes logo, the label Cloud Guide and the headline "What is Kubernetes?"

The short version

  • Kubernetes is a platform for running containers in production. The project describes it as "a portable, extensible, open source platform for managing containerized workloads and services."
  • A cluster has a control plane, which makes decisions, and worker nodes, which run your containers inside units called Pods.
  • You describe the state you want, such as "3 copies of this app," and Kubernetes keeps working to make the cluster match it.
  • Docker builds and runs containers. Kubernetes manages containers across many machines, and images built with Docker run on it.
  • Amazon, Google and Microsoft all sell managed Kubernetes services: Amazon EKS, Google Kubernetes Engine and Azure Kubernetes Service.

What is Kubernetes used for?

Kubernetes exists to keep containerized apps running. A container bundles an app with everything it needs, so it runs the same way on a laptop as on a server. The Kubernetes documentation explains why that isn't enough on its own: in production, "if a container goes down, another container needs to start." Kubernetes handles that kind of work automatically. The project says it "takes care of scaling and failover for your application, provides deployment patterns, and more."

Kubernetes isn't tied to one cloud. The documentation says containers are portable across clouds and run on-premises as well as on major public clouds. If you're new to the cloud side, start with our guide to what cloud computing is.

What does Kubernetes do?

The Kubernetes overview lists the main jobs it does for you:

The project is also clear about what Kubernetes isn't. It "is not a traditional, all-inclusive PaaS." It doesn't build your app or deploy source code. It also doesn't include databases or message buses as built-in services. Those can run on Kubernetes, but you choose and add them.

How does Kubernetes work?

Kubernetes works on a desired-state model. Instead of running a script of steps, you describe the result you want and send it to the cluster. The documentation says Kubernetes is made up of "independent, composable control processes that continuously drive the current state towards the provided desired state."

Say you ask for 3 copies of a web app. If one crashes, the cluster now has 2 running copies and wants 3, so Kubernetes starts another.

The project calls kubectl "the primary CLI for Kubernetes." You can use it to deploy applications, inspect and manage cluster resources and view logs.

Kubernetes architecture: clusters, nodes and Pods

Cluster

A Kubernetes cluster "consists of a control plane plus a set of worker machines, called nodes, that run containerized applications." Every cluster needs at least 1 worker node to run Pods. In production, the control plane usually runs across multiple computers and a cluster usually has multiple nodes, which the documentation says provides fault tolerance and high availability.

Control plane

The control plane manages the overall state of the cluster. Its main components are:

Nodes

A node "may be a virtual or physical machine, depending on the cluster." Each one runs the kubelet, which makes sure Pods and their containers are running; a container runtime, which actually runs the containers; and usually kube-proxy, which maintains network rules for Services.

Pods

The documentation says Pods "are the smallest deployable units of computing that you can create and manage in Kubernetes." Each Pod holds 1 or more containers that share storage and network resources. The documentation says 1 container per Pod is the most common setup, and in that case "you can think of a Pod as a wrapper around a single container."

Deployments and Services

You rarely create Pods one at a time. A Deployment "manages a set of Pods to run an application workload" and handles updates for them. A Service exposes an app running in 1 or more Pods behind a single endpoint, so other apps can reach it even as individual Pods come and go.

Kubernetes vs Docker

They do different jobs. Docker's documentation calls Docker "an open platform for developing, shipping, and running applications." You use it to build container images and run containers. Kubernetes runs and manages containers across a whole cluster of machines.

DockerKubernetes
Main jobBuild images and run containersRun and manage containers across a cluster
Unit it works withContainer and imagePod, which wraps 1 or more containers

The Kubernetes project says early versions "only worked with a specific container runtime: Docker Engine." Kubernetes later added support for other runtimes through a standard called the Container Runtime Interface (CRI), and Kubernetes 1.24 removed dockershim, the built-in code that connected it to Docker Engine.

That change didn't make Docker useless for Kubernetes. The project says images built with docker build work with all CRI runtimes, and that if you use Docker on your own PC to develop or test containers, "nothing changes." For clusters that still need Docker Engine, Mirantis and Docker committed to maintaining an adapter called cri-dockerd.

Where Kubernetes came from

Kubernetes started at Google, and the name comes from Greek for helmsman or pilot. The project says Kubernetes combines over 15 years of Google's experience running production workloads at scale with ideas from the community. Google says Kubernetes draws on years of running production workloads on Borg, its in-house cluster management system.

According to the Kubernetes project, the first commit was pushed to GitHub on June 6, 2014, and version 1.0 followed on July 21, 2015. Alongside 1.0, Google announced it would donate Kubernetes to the newly formed Cloud Native Computing Foundation (CNCF), part of the Linux Foundation.

Managed Kubernetes: EKS, GKE and AKS

Instead of running the control plane yourself, you can have a cloud provider run it. Amazon, Google and Microsoft each offer a managed service, and each has a mode that also manages the worker nodes:

Kubernetes isn't the only way to run apps in the cloud. If you'd rather not manage clusters at all, our guide to serverless computing covers another option.

How to try Kubernetes

You don't need a cloud account to learn Kubernetes. The project points to 2 tools that run a cluster on your own computer:

Install kubectl alongside either one to send commands to the cluster.

Frequently asked questions

Is Kubernetes free?

Yes. Kubernetes is open source and released under the Apache License 2.0, so you can download and run it without paying for the software. You still pay for the machines it runs on, and managed services such as EKS, GKE and AKS charge for compute and, depending on the service and tier, for cluster management.

Can Kubernetes run without Docker?

Yes. Kubernetes runs containers through any runtime that supports the Container Runtime Interface, and since version 1.24 it no longer includes the dockershim code for Docker Engine. Images built with Docker still run on those other runtimes.

Can Kubernetes run on Windows?

Partly. The control plane runs only on Linux, but worker nodes can run Windows or Linux. The Kubernetes documentation says Windows nodes are supported on Windows Server 2022 or Windows Server 2025. For learning on a Windows PC, minikube runs a local cluster.

What is a Kubernetes cluster?

It's the full set of machines Kubernetes manages. The control plane makes decisions and manages the cluster, and the worker nodes run your containers in Pods. Every cluster needs at least 1 worker node.

Why is Kubernetes called K8s?

K8s is an abbreviation of Kubernetes. The 8 stands for the 8 letters between the "K" and the "s."

More in Cloud

Sources