What Is Kubernetes?
Kubernetes (often abbreviated K8s) is an open-source container orchestration platform originally developed by Google and now maintained by the Cloud Native Computing Foundation (CNCF). It automates the deployment, scaling, healing, and networking of containerized applications across a cluster of machines, so operators don't have to manage individual containers by hand.
Cricket analogy: Kubernetes is like a franchise's team management system that automates squad selection, substitutions, and rest rotations across a whole league season, so the coaching staff doesn't manually manage every single player's schedule by hand.
Why Orchestration Matters
Running a handful of containers with Docker alone is manageable, but production systems often need dozens or thousands of containers spread across many machines. Orchestration solves problems Docker alone does not: scheduling containers onto available hosts, restarting failed containers, scaling replicas up and down based on load, routing traffic to healthy instances, and rolling out updates without downtime.
Cricket analogy: Running a few players is manageable by a single coach, but a national cricket board managing thousands of players across age groups and states needs automated systems for selection, injury replacement, and fixture scheduling -- that's orchestration beyond one coach's Docker-level effort.
Kubernetes does not run containers directly itself; it delegates that job to a container runtime (such as containerd or CRI-O) on each node, while Kubernetes focuses on scheduling and lifecycle management.
Core Problems Kubernetes Solves
Kubernetes provides self-healing (restarting or rescheduling failed containers), horizontal scaling (adding or removing replicas automatically or manually), service discovery and load balancing (giving groups of pods a stable network identity), automated rollouts and rollbacks, and declarative configuration (you describe the desired state and Kubernetes works continuously to match reality to it).
Cricket analogy: Kubernetes is like a franchise's ops team that reinstates an injured player automatically (self-healing), calls up reserves when form dips (scaling), gives the whole squad one recognizable jersey number system (service discovery), rotates the XI smoothly between matches (rollouts), and simply follows the written team strategy document (declarative config) rather than issuing live orders.
Declarative State: The Core Model
Instead of issuing imperative commands to start or stop individual containers, you describe the desired state of your system in YAML manifests -- for example, 'run 3 replicas of this image' -- and submit that to the Kubernetes API. Control loops inside Kubernetes continuously compare actual cluster state to the desired state and take action to reconcile any difference, such as restarting a crashed container or rescheduling a pod from a failed node.
Cricket analogy: Rather than shouting live instructions for every ball, a captain submits a written game plan -- 'bowl three overs of spin, then pace' -- and the team continuously adjusts its actual play to match that plan, correcting course if a bowler gets injured mid-over.
# Ask the cluster what it currently knows about running pods
kubectl get pods
# Ask the cluster for details about the overall cluster
kubectl cluster-info
# Check which nodes are part of the cluster and their status
kubectl get nodesWhere Kubernetes Fits vs. Docker
Docker builds container images and can run individual containers on a single host. Kubernetes takes containers -- built with Docker or another tool -- and orchestrates them across a fleet of machines. They are complementary: Docker (or another OCI-compliant build tool) produces the images; Kubernetes schedules, scales, and manages the running containers built from those images.
Cricket analogy: Docker is like the bat manufacturer crafting each individual bat to spec, while Kubernetes is like the tournament organizer deploying and rotating those bats across every team and venue in the league -- one builds, the other orchestrates at scale.
Kubernetes is not required for every workload. For a single-server app or a small side project, the operational overhead of running a cluster may outweigh the benefits. Kubernetes shines when you need resilience, scale, or multi-service coordination across many machines.
- Kubernetes is a container orchestration platform, originally created by Google, now maintained by the CNCF.
- It automates scheduling, scaling, self-healing, and networking for containerized workloads.
- Kubernetes uses a declarative model: you describe desired state, and control loops reconcile actual state to match it.
- Kubernetes delegates actual container execution to a container runtime like containerd or CRI-O.
- Docker builds images; Kubernetes orchestrates the containers running from those images across a cluster.
Practice what you learned
1. Which organization currently maintains the Kubernetes project?
2. What configuration model does Kubernetes primarily use?
3. What role does a container runtime like containerd play in a Kubernetes cluster?
4. Which of the following is NOT a core problem Kubernetes is designed to solve?
5. How do Docker and Kubernetes typically relate to each other?
Was this page helpful?
You May Also Like
Kubernetes Architecture
A tour of Kubernetes cluster architecture, covering control plane components and worker node components and how they interact.
Container Orchestration Strategies
A comparison of orchestration platforms and hosting models for running containers reliably at scale in production.
Docker Architecture Overview
An overview of Docker's client-server architecture, including the Docker daemon, CLI client, images, containers, and registries.
kubectl Basics
A practical introduction to kubectl, the command-line tool used to interact with a Kubernetes cluster's API server.
Related Reading
Related Study Notes in DevOps
Browse all study notesNginx Study Notes
DevOps · 30 topics
DevOpsAnsible Study Notes
DevOps · 30 topics
DevOpsAdvanced Kubernetes Study Notes
Kubernetes · 30 topics
DevOpsAdvanced Bash Scripting Study Notes
Bash · 30 topics
DevOpsApache Kafka Study Notes
Kafka · 30 topics
DevOpsCI/CD Tools & Pipelines Study Notes
YAML · 37 topics