# Kubernetes

> For AI agents: the complete glossary index is at [llms.txt](https://glossary.cncf.io/llms.txt).
> Markdown versions of every glossary page are available by appending `index.md` to the page URL.

Kubernetes, often abbreviated as K8s, is an open source container orchestrator. 
It automates the lifecycle of containerized applications on modern infrastructures, functioning as a "datacenter operating system" that manages applications across a [distributed system](https://glossary.cncf.io/distributed-systems/).

Kubernetes schedules [containers](https://glossary.cncf.io/container/) across [nodes](https://glossary.cncf.io/nodes/) in a [cluster](https://glossary.cncf.io/cluster/), bundling several infrastructure resources such as load balancer, persistent storage, etc. to run containerized applications.

Kubernetes enables automation and extensibility, allowing users to deploy applications declaratively (see below) in a reproducible way. 
Kubernetes is extensible via its [API](https://glossary.cncf.io/application-programming-interface/), allowing experienced Kubernetes practitioners to leverage its automation capabilities according to their needs.

## Problem it addresses

Infrastructure automation and declarative configuration management have been important concepts for a long time, but they have become more pressing as [cloud computing](https://glossary.cncf.io/cloud-computing/) has gained popularity. 
As demand for compute resources increases and organizations need to provide more operational capabilities with fewer engineers, new technologies and working methods are required to meet that demand. 

## How it helps

Similar to traditional [infrastructure as code](https://glossary.cncf.io/infrastructure-as-code/) tools, Kubernetes helps with automation but has the advantage of working with containers. 
Containers are more resistant to configuration drift than [virtual](https://glossary.cncf.io/virtual-machine/) or physical machines. 

Additionally, Kubernetes works declaratively, which means that instead of operators instructing the machine how to do something, they describe — usually as manifest files (e.g., YAML) — what the infrastructure should look like. 
Kubernetes then takes care of the "how". 
This results in Kubernetes being extremely compatible with infrastructure as code.

Kubernetes also [self-heals](https://glossary.cncf.io/self-healing/). 
The cluster's actual state will always match the operator's desired state.
If Kubernetes detects a deviation from what is described in the manifest files, a Kubernetes controller kicks in and fixes it. 
While the infrastructure Kubernetes uses may be continually changing, Kubernetes constantly and automatically adapts to changes and ensures that it matches with the desired state.

---

- Canonical URL: https://glossary.cncf.io/kubernetes/
- Status: Completed
- Last modified November 30, 2023: ` chore: remove duplicated lines ` ([e57ed31](https://github.com/cncf/glossary/commit/e57ed3109d8084268bac253d77a19e799d83bcf9))
- Source: https://github.com/cncf/glossary/blob/main/content/en/kubernetes.md
- License: [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/)
