Skip to content
Devgo

Kubernetes

A container orchestration platform that manages running containers across a cluster of machines. Kubernetes (K8s) handles scheduling, scaling, self-healing, and rolling updates. The standard for running containers in production at scale. Complex but powerful. Made by Google.

Created by

Joe Beda, Brendan Burns, Craig McLuckie · Created Kubernetes at Google in 2014

When to use
  • Large-scale container deployments.
  • Teams needing auto-scaling and self-healing.
  • Microservices architectures.
When not to
  • Small apps (use Docker Compose or serverless).
  • Teams without DevOps expertise.

Definition

Kubernetes orchestrates containers across a cluster. You declare desired state (Deployments, Services); K8s reconciles to match it. Features: auto-scaling, self-healing (restarts failed containers), rolling updates, service discovery, load balancing, config/secrets management.

Why it exists

Running containers manually across many machines is hard — scheduling, failures, scaling, updates. Kubernetes automates all of it, inspired by Google's internal Borg system.

How it works

Define Deployments (how many replicas of a ), Services (networking), Ingress ( routing). The control plane schedules pods (container groups) onto nodes. Kubelet on each node runs pods. etcd stores cluster state. kubectl is the CLI.

Scaling limits

Steep learning curve. Complex to operate (managed K8s like EKS/GKE helps). Resource overhead for the control plane. YAML complexity. Overkill for small apps.

Cost shape

Free and open source. Managed K8s (EKS, GKE, AKS) charges per cluster/hour + nodes.

Alternatives

  • Docker Swarm — Simpler, built into , but less features.
  • Serverless (Lambda) — No infrastructure management, but vendor lock-in.

Failure modes

  • Configuration complexity (YAML fatigue).
  • Resource leaks from orphaned resources.
  • Networking complexity.
  • Hard to debug.

, ,