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 what Kubernetes is: an open-source system for automating the deployment, scaling, and management of containerized applications, operating as a declarative, API-driven control system that continuously reconciles the actual state of a cluster of machines toward a desired state expressed by its users. This definition distinguishes Kubernetes from adjacent concepts it is often conflated with, a container runtime, a cloud platform, or a deployment script, by isolating the specific properties that make it an orchestration system rather than any of those other things.
Formal Characterization
Orchestration, Not Execution
Kubernetes itself does not execute containers; that responsibility belongs to a separate container runtime operating beneath it. Kubernetes is properly defined as an orchestration layer: it decides what should run, where it should run, and how to respond when reality diverges from that decision, delegating the mechanics of actually starting and stopping processes to the runtime it coordinates.
Declarative Control System
At its core, Kubernetes is a control system in the classical sense: it accepts a specification of desired state, observes the current state of the system it governs, and continuously computes and applies actions to minimize the difference between the two, without requiring the actions themselves to be specified explicitly by the user.
Platform for Building Platforms
Kubernetes is frequently and accurately described as a platform for building platforms: it does not itself provide a complete application platform, such as a fully opinionated Platform-as-a-Service, but rather a set of primitives and extension points, Pods, Services, Custom Resource Definitions, controllers, general enough that more opinionated systems can be, and routinely are, constructed on top of it.
What Kubernetes Is Not
Not a Container Runtime
A container runtime, such as containerd or CRI-O, is the software that actually creates and runs containers by manipulating operating system primitives like namespaces and control groups. Kubernetes is a distinct, higher-level system that delegates to a container runtime through the Container Runtime Interface, rather than performing this function itself.
Not a Cloud Provider
Kubernetes can run on a cloud provider's infrastructure, on-premises hardware, or a developer's laptop, and defines a consistent API surface regardless of where it runs; it is an infrastructure-agnostic orchestration layer, not a cloud service itself, even though many cloud providers offer Kubernetes as a managed service.
Not a CI/CD or Deployment Pipeline
Kubernetes accepts and reconciles desired state but does not itself define how that state is produced, tested, or promoted between environments; continuous integration and continuous delivery tooling operates alongside Kubernetes, generating and applying manifests, rather than being a built-in part of Kubernetes itself.
Etymology and Origin
The Name
Kubernetes derives from the Greek word for "helmsman" or "pilot," reflecting its role steering a cluster's actual state toward its declared destination; the commonly used abbreviation "K8s" replaces the eight letters between the first and last letter of the full name with the digit 8.
Lineage
Kubernetes was designed by engineers at Google, drawing directly on internal experience operating large-scale cluster management systems, most notably Borg, before being open-sourced and subsequently donated to the Cloud Native Computing Foundation, under which it continues to be developed as a community-governed project.
Defining Properties
Extensibility
Its object model, API conventions, and controller pattern are uniform enough that user-defined resource types behave identically to built-in ones, allowing the system's own extension mechanisms to be defined in terms of the same primitives used internally.
Portability
A workload manifest that runs correctly against one conformant Kubernetes cluster is expected to run correctly against any other, a property maintained through a formal conformance program that certifies distributions and managed offerings against the same API behavior.
Self-Healing
Its continuous reconciliation loops mean that many classes of failure, a crashed process, an unreachable node, a deleted object, are corrected automatically without requiring explicit operator intervention, a defining behavioral characteristic that follows directly from its declarative, controller-based architecture.
kubectl version --short
kubectl cluster-info
kubectl api-versions