What is Kubernetes?
Also known as: K8s
Kubernetes is an open source platform for automating the deployment, scaling, and management of containerized applications across clusters of hosts.
Kubernetes (often abbreviated as K8s) is an open source container orchestration system originally designed by Google and now maintained by the Cloud Native Computing Foundation. It provides a framework to run distributed systems resiliently, handling scaling, failover, deployment patterns, and service discovery. Kubernetes groups containers into pods, the smallest deployable units, and schedules these pods across a cluster of nodes (physical or virtual machines).
The control plane (formerly master) runs the API server, scheduler, controller manager, and etcd. Nodes run the kubelet, kube-proxy, and a container runtime (such as containerd or CRI-O). Users declare desired state through YAML or JSON manifests; the control plane continuously reconciles actual state toward the declared state. Networking follows models like CNI (Container Network Interface) with flat IP space, and storage is abstracted via PersistentVolumes and StorageClasses. Kubernetes supports both stateless and stateful workloads through Deployments, StatefulSets, DaemonSets, and Jobs.
Kubernetes sits above container runtimes and below application deployment tools like Helm or operators. It replaced earlier orchestration tools such as Apache Mesos and Docker Swarm in mainstream adoption, and it is available on all major cloud providers as managed services (EKS, AKS, GKE) as well as for on-premises installations.
Key facts
- Originally developed by Google, first open sourced in 2014, based on Borg and Omega research.
- Current stable release is v1.31 (August 2024).
- API server exposes REST endpoints on port 6443 (default).
- Uses etcd as distributed key-value store for all cluster data.
- Horizontal Pod Autoscaler can scale pods based on CPU, memory, or custom metrics.
- Supports multiple container runtimes via CRI interface, not limited to Docker.
How it works in practice
Related terms
References
More in Containers & Orchestration
ConfigMap
A ConfigMap is a Kubernetes API object used to store non-confidential configuration data in key-value pairs, which pods can consume as environment variables, command-line arguments, or configuration files.
Container
A container is a lightweight, isolated runtime that packages an application with its dependencies using OS-level virtualization, enabling consistent execution across environments.
Container Image
A container image is a lightweight, standalone, executable package that includes everything needed to run a piece of software: code, runtime, system tools, libraries, and settings. It is the unit of distribution in container ecosystems like Docker and Kubernetes.
Container Registry
A container registry is a service that stores and distributes container images, enabling developers to push, pull, and version images across environments.
Container Runtime
A container runtime is the low-level software that creates, starts, and stops containers according to the OCI runtime specification, enabling process isolation and resource management.
Docker
Docker is a platform and toolchain for packaging, distributing, and running applications inside lightweight, portable containers, popularising the technology from 2013 onward.
Helm
Helm is a package manager for Kubernetes that uses charts to define, install, and upgrade complex applications as a single, versioned unit.
Ingress Controller
An Ingress Controller is a Kubernetes component that watches Ingress resources and configures a reverse proxy to route external HTTP and HTTPS traffic to services inside the cluster.
Init Container
An init container is a specialized container in a Kubernetes pod that runs to completion before any regular containers start, performing initialization or setup tasks.
Operator
A Kubernetes Operator is a custom controller that extends the Kubernetes API to automate the management of a specific application, encoding human operational knowledge as code.