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.
Sandbox to play with k8s
Play with Kubernetes provides you with Linux machines that have k8s preinstalled.
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.