Kubernetes Cluster spans over multiple nodes, the master (Control Plane) should be separated from worker Nodes
Master only component. Accepts user request. Stores resources definitions in etcd.
Master only component. Key-value store that is highly available. Used to store all cluster data.
Master only component. Materializes user requests, watches the kube-apiserver, decides where and when schedule PODs.
PODs definition may contain some data that affects kube-scheduler:
affinity/anti-affinitynodeSelectortaints/tolerationsreservations/limits
It is possible to write custom scheduler
Master only component. Controllers execute routine tasks to synchronize desired state (typically called spec) with observed state.
Notable mentions:
- Node Controller - monitors Node lifecycle, responds when the Node goes down
- Replication Controller - manages
*-controllers, e.g.,deployment-controller - Endpoints Controller - populates Endpoint
- Service Account Controller - creates accounts and access tokens for namespaces
Master/Worker component. Resides on every Node. Connects to the kube-apiserver. Starts the actual containers via the container runtime.
Provides health-checks
Master/Worker component. Main network component, watches the services and materializes their rule on the Nodes (e.g. handles iptables)
