Abstract
Benefits
- Self-healing
- automatic rollbacks
- horizontal scaling
Attention
- Can be complex to maintain
- Costs associated with running nodes
Managed control planes can help mitigate complexity.
Control Plane
- Runs on multiple nodes across data center zones for high availability
Key Components
Controller Manager
- Replication Controller: Maintains the desired number of worker nodes
- Deployment Controller: Handles rollbacks and updates
Scheduler
- Schedules pods onto worker nodes, making placement decisions
etcd
- Distributed key-value store
- Stores cluster state, available resources, and health information
- Used by other control plane components
API Server
- REST API interface between the control plane and worker nodes
Worker nodes
- Run containers, which are encapsulated within pods
- Pods are the smallest deployable units in Kubernetes
- Pods provide shared storage and networking for containers
Key Components
Kubelet
- Communicates with the control plane
- Ensures the desired state of pods is maintained
Container Runtime
- Can be Docker or another compatible runtime
- Runs containers on worker nodes
- Pulls images, starts/stops containers
Kube-proxy
- Routes traffic to the correct pods
- Handles load balancing
- Cluster networking ensures that pods on different nodes can communicate seamlessly, so traffic can be routed between nodes without issue.