# What is Kubernetes?

Kubernetes starts and spreads containers across several machines.

> Source: https://www.mainpath.ai/en/wiki/kubernetes/

## What it is

Kubernetes is a control system for containers. It starts them, starts them again when one fails, and spreads them across several machines when one instance is no longer enough. You describe the state you want. Kubernetes tries to bring the running state in line with it.

You describe how many instances should be running. The control plane tries to keep the live state there.

## What it is made of

The pieces have names that are not everyday words. A pod is the smallest running unit, often one container. A deployment says how many of them should run and how an update proceeds. A service gives the pods a stable name on the network, even when individual pods come and go. Storage, configuration, and credentials that should not live in the image sit beside that.

## What goes wrong

If you run this yourself, you maintain the cluster: the machines under it, updates of the control plane, networks between the nodes, and who may roll out what. That is a system of its own, before the first line of product logic exists. For a single project the effort is often larger than the gain. For many services that should scale independently, it is why teams use it anyway.

## What you otherwise look after yourself

Without that layer every container runs on a fixed machine. If the machine fails, the service fails until someone starts it somewhere else.

## How it shows up on MainPath

MainPath takes care of distributing the app with the project. You describe the app, not a cluster of your own for every idea.

