Kubernetes
Overview
Kubernetes (K8s) is the industry-standard open-source platform for automating the deployment, scaling, and management of containerized applications across clusters of hosts. Originally developed by Google based on their internal Borg system and first released in 2014, Kubernetes has become the de facto standard for container orchestration, hosted by the Cloud Native Computing Foundation (CNCF).
Kubernetes abstracts away the underlying infrastructure, providing a declarative model for defining how applications should run, scale, and recover. With over 124,000 GitHub stars and 139,000+ commits, it is one of the most active open-source projects in the world, backed by thousands of contributors and virtually every major cloud provider.
Key Features
- Automated deployment and rollbacks — Declaratively define desired state; Kubernetes automatically rolls out changes and can roll back to previous versions on failure
- Horizontal pod autoscaling (HPA) — Automatically scale the number of pods based on CPU, memory, or custom metrics
- Service discovery and load balancing — Built-in DNS-based service discovery with automatic load balancing across pod replicas
- Self-healing — Automatically restarts failed containers, replaces unhealthy pods, and reschedules when nodes go down
- Storage orchestration — Automatically mounts storage systems of choice (local, cloud, network) with persistent volume claims
- Secret and configuration management — Deploy and update secrets and configuration without rebuilding container images
- Batch execution and cron jobs — Run batch workloads, one-shot jobs, and scheduled tasks alongside long-running services
- Multi-cloud and hybrid deployments — Run the same workloads across on-premises, public cloud (AWS, GCP, Azure), or edge environments
- Namespace-based multi-tenancy — Isolate teams, environments, and projects within a single cluster using namespaces and resource quotas
- Extensibility — Extend Kubernetes with custom resource definitions (CRDs), operators, admission webhooks, and the extensive CNCF ecosystem
Why Use It
Kubernetes solves the fundamental challenge of running containerized applications at scale: how to deploy, manage, and recover dozens or thousands of containers across a fleet of machines. Its declarative model means you specify what you want (3 replicas of nginx, port 80) and Kubernetes handles the how (scheduling, health checks, networking, scaling). The ecosystem is unmatched — from Helm charts for packaging to Prometheus for monitoring to Istio for service meshes, Kubernetes has become the Linux of cloud infrastructure.
Use Cases
- Production microservices — Run dozens of interconnected microservices with automated scaling, rolling updates, and health management
- CI/CD pipelines — Run build, test, and deploy jobs on ephemeral Kubernetes pods with Tekton, ArgoCD, or GitHub Actions runners
- Machine learning training — Orchestrate GPU-backed training jobs with Kubeflow, managing data volumes and resource allocation
- Stateful applications — Deploy databases, message queues, and key-value stores with StatefulSets and persistent storage
- Hybrid cloud — Run workloads consistently across on-premises and multiple cloud providers with a unified API
- Edge computing — Deploy lightweight Kubernetes distributions (K3s, MicroK8s) on edge devices for IoT and edge workloads
Platforms
Linux · macOS · Windows (via Docker Desktop, Minikube, or kind)
Licence
Apache License 2.0
Website
kubernetes.io · GitHub
Views: 3