Chạy vài container trên một máy thì Docker là đủ. Nhưng khi có nhiều container trải qua nhiều host trong production, xuất hiện hàng loạt việc phải làm tự động — đó là lý do cần một orchestrator.
Kubernetes lo giúp:
- Scheduling: xếp container lên node phù hợp (đủ CPU/RAM).
- Self-healing: container/pod chết thì tự tạo lại; node hỏng thì reschedule.
- Scaling: tăng/giảm số bản sao theo tải (thủ công hoặc HPA).
- Service discovery + load balancing: địa chỉ ổn định và chia tải tới nhóm pod.
- Rolling update / rollback: phát hành không downtime, quay lui khi lỗi.
- Config/secret: tách cấu hình khỏi image.
Cốt lõi là mô hình desired state: bạn khai báo "muốn gì", K8s liên tục điều chỉnh thực tế cho khớp. Không có orchestrator, các việc trên phải làm tay và dễ sai.