A practical introduction to container orchestration and cloud-native deployment
What is Kubernetes?
Kubernetes is an open-source container orchestration system originally released by Google. It manages containerized applications across many machines and provides automation for scheduling, scaling, recovery, and updates.
Docker vs. Kubernetes
| Tool | Description |
|---|---|
| Docker | packages and runs individual containers |
| Kubernetes | manages and schedules many containers across machines |
Core architecture
Control Plane
The control plane receives requests and distributes work to worker nodes.
| Component | Role |
|---|---|
kube-apiserver | API entry point |
etcd | cluster state storage |
kube-scheduler | assigns Pods to nodes |
kube-controller-manager | keeps cluster state in sync |
Worker Nodes
Worker nodes actually run containers.
| Component | Role |
|---|---|
kubelet | node agent |
kube-proxy | network rules and load balancing |
| Container runtime | runs containers |
Pod
A Pod is the smallest deployable unit in Kubernetes. It can contain one or more containers that share network and storage context.
Storage and volumes
Kubernetes uses volumes and persistent storage to keep data available beyond a single container lifecycle.
volumes:
- name: my-data
persistentVolumeClaim:
claimName: my-pvc
containers:
- name: app
volumeMounts:
- name: my-data
mountPath: /data
Summary
Kubernetes turns containerized applications into scalable, resilient, and manageable systems. It is the standard platform for cloud-native deployment.