k8s in a nutshell
High level k8s arch
A k8s cluster has two kind of nodes
- control plane node: exposes the k8s API, so if you want to interact with the k8s cluster you need to go thru here.
- worker node: nodes that execute the workload. Needs to have a container runtime engine installed (containerd) for executing the containers.
Control Plane Node Components
- API server: expose k8s api
- Scheduler: Watches for new k8s pods and assign to nodes
- Controller Manager: watches the state of cluster, and makes changes
- etcd: a key-value that captures the state of the objects we create in the cluster
Common Node Components
Any node has these:
-
Kubelet: agent that makes sure the containers are running in a k8s pod, usually this one runs in the workers.
-
kube proxy: maintain network rules and allow communication
-
Container runtime: software responsible for running containers