What is container orchestration and what problems does it solve?
Answer
Container orchestration automates the deployment, scaling, networking, availability, and lifecycle management of containerized applications across a cluster of machines. Problems it solves that raw Docker doesn't handle: (1) Scheduling: deciding which host a container should run on based on resource availability, affinity rules, and constraints; (2) Scaling: automatically scaling services up/down based on load (horizontal pod autoscaling); (3) Self-healing: detecting and replacing failed containers automatically; restarting containers that crash; replacing containers on failed nodes; (4) Rolling updates & rollbacks: deploying new versions with zero downtime; rolling back if the new version fails health checks; (5) Service discovery & load balancing: automatically registering new instances; distributing traffic across healthy instances; (6) Configuration & secret management: distributing config and secrets to containers securely; (7) Storage orchestration: automatically mounting storage systems (AWS EBS, NFS, CSI drivers); (8) Resource management: setting CPU/memory requests and limits, bin-packing containers efficiently. Main orchestration platforms: Kubernetes (industry standard, most powerful and complex), Docker Swarm (simpler, built into Docker), Amazon ECS/EKS, HashiCorp Nomad (polyglot, simpler than K8s).
Previous
What is the Docker socket and why is exposing it dangerous?
Next
What is Kubernetes and how does it relate to Docker?