Browse
Containerization & Orchestration
Packaging an app with its dependencies via containers, and how Kubernetes schedules and manages them at scale.
What it is
Containers (Docker) package an application with its dependencies into a single portable unit, so it runs the same way in every environment. Orchestrators (Kubernetes) manage many containers across a cluster — scheduling, scaling, and healing them.
Key points
- Containers vs. VMs: containers share the host OS kernel (lighter weight, faster startup); VMs virtualize hardware and run a full guest OS (more isolation, heavier).
- Kubernetes core objects: a Pod is the smallest deployable unit (one or more containers); a Deployment manages replicas of a Pod and rolling updates; a Service provides stable networking to a set of Pods.
- Self-healing: Kubernetes continuously reconciles actual state toward desired state — if a Pod crashes, it's automatically rescheduled, without manual intervention.
- Horizontal scaling: adding more Pod replicas to handle load, which containers/orchestration make far easier to automate than scaling a traditional VM fleet.
