Kubernetes admin - kiemlicz/util GitHub Wiki
Kubernetes components
Kubernetes Cluster spans over multiple nodes, the master (Control Plane) should be separated from worker Nodes

kube-apiserver
Master only component. Accepts user request. Stores resources definitions in etcd.
etcd
Master only component. Key-value store that is highly available. Used to store all cluster data.
kube-scheduler
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
kube-controller-manager
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
kubelet
Master/Worker component. Resides on every Node. Connects to the kube-apiserver. Starts the actual containers via the container runtime.
Provides health-checks
kube-proxy
Master/Worker component. Main network component, watches the services and materializes their rule on the Nodes (e.g. handles iptables)