Kubernetes (K8s) is an open-source container orchestration system originally developed by Google that automates the deployment, scaling, load balancing, and self-healing of containerized applications across clusters of machines. It abstracts the underlying infrastructure, allowing developers to declare desired application state (via YAML manifests) while Kubernetes continuously reconciles the actual state to match. Kubernetes has become the de facto standard for running production-grade microservices workloads, supported by all major cloud providers (AWS EKS, Google GKE, Azure AKS).
| Object | Purpose | Manages |
|---|---|---|
| Pod | Smallest deployable unit | One or more containers |
| Deployment | Manages pod replicas | Rolling updates and rollbacks |
| Service | Network access to pods | Load balancing and discovery |
| ConfigMap | Non-secret configuration | Environment variables and config files |
| Namespace | Logical cluster partition | Resource isolation per team/environment |
Wikimedia Commons, CC BY-SA
Docker is an open-source platform that uses OS-level virtualization to package applications and their dependencies into lightweight, portable units called containers, ensuring consistent execution across any computing environment. Unlike virtual machines that emulate entire hardware stacks, Docker containers share the host OS kernel and isolate the application's filesystem, processes, and network using Linux namespaces and cgroups. Docker has revolutionized software delivery by enabling the "build once, run anywhere" paradigm, drastically reducing environment-related deployment failures.
Microservices architecture is a software design approach where an application is structured as a collection of small, independently deployable services, each responsible for a specific business capability and communicating over well-defined APIs. Unlike monolithic architectures where all components share a single codebase and runtime, microservices can be developed, deployed, and scaled independently using different programming languages and data stores. This pattern enables large engineering teams to work in parallel, improves fault isolation, and supports continuous delivery pipelines at scale.
A distributed system is a collection of independent computers that appear to users as a single coherent system, coordinating their actions by passing messages over a network to achieve a common computational goal. Key challenges in distributed systems include handling partial failures (where some nodes crash but others continue), achieving consensus on shared state, ensuring data consistency across replicas, and tolerating network partitions. Modern distributed systems underpin the internet's most critical infrastructure — from Google's search index and Amazon's shopping cart to financial clearing systems and distributed databases.
Kubernetes comes from the Greek word "kybernetes" (κυβερνήτης), meaning helmsman or pilot of a ship. The abbreviation K8s replaces the 8 letters between K and s. It was open-sourced by Google in 2014, rooted in their internal Borg and Omega cluster management systems.