✦ For everyone, free.

Practical knowledge for real and everyday life

Home

1.1 Kubernetes Definition

Kubernetes is an open-source system for automating deployment, scaling, and management of containerized applications across clusters of machines.

Kubernetes Definition is the precise characterization of Kubernetes as an open-source system for automating the deployment, scaling, and management of containerized applications, distinguishing what the platform actually is from the broader ecosystem of tools and practices that have grown up around it.


A Formal Characterization

Container Orchestration Platform

At its core, Kubernetes is a container orchestration platform: software that takes a declared description of containerized workloads and manages the underlying compute resources needed to run them, handling scheduling, scaling, networking, and recovery from failure without requiring manual intervention for each of these tasks individually.

Not a Single Program, but a System of Cooperating Processes

Kubernetes is not one monolithic binary but a distributed system composed of several cooperating processes, including an API server, a data store, a scheduler, and a set of controllers, all working together to reconcile a cluster's actual state with its declared desired state.


Origins and Governance

Developed at Google, Open-Sourced in 2014

Kubernetes originated at Google, drawing on internal experience running containerized workloads at large scale, and was released as an open-source project in 2014, making its design and implementation openly available rather than proprietary.

Stewarded by the Cloud Native Computing Foundation

Kubernetes is maintained under the governance of the Cloud Native Computing Foundation (CNCF), a vendor-neutral organization that oversees its development process, ensuring the project remains open to contributions from a broad community rather than being controlled by any single company.


What Kubernetes Is Not

Not a Complete Application Platform by Itself

Kubernetes provides the primitives for running and managing containers, but it does not itself include application-level concerns such as build pipelines, continuous integration, or a full developer experience layer; those capabilities are typically supplied by additional tools built on top of Kubernetes.

Not a Specific Container Runtime

Kubernetes does not implement container execution itself; it delegates that responsibility to a separate container runtime through a standardized interface, meaning Kubernetes should be understood as an orchestration layer above the runtime, not a replacement for it.

Kubernetes = orchestration runtime

Defining Characteristics

Declarative and Self-Healing

A defining characteristic of Kubernetes is its declarative model: users describe the desired end state, and the system continuously works to achieve and maintain it, automatically recovering from failures without needing an operator to intervene for routine disruptions.

Extensible by Design

Kubernetes is deliberately designed to be extended rather than modified, exposing well-defined extension points such as Custom Resource Definitions and admission webhooks that allow new capabilities to be layered on top of its core without altering its underlying codebase.


Placing Kubernetes in Context

Applications (containers) Kubernetes (orchestration) Container runtime + machines

Understanding Kubernetes this way, as an orchestration layer sitting between raw compute infrastructure and the applications that run on top of it, clarifies both what problems it solves directly and which surrounding concerns are left to complementary tools within the broader cloud native ecosystem.