✦ For everyone, free.

Practical knowledge for real and everyday life

Home

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.

Kubernetes = ( API , state store , controllers ) , such that controllers : observed desired

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