Cluster Components
A list of terms used in the context of a K8s cluster.
You don’t have to implement these, but these come up when you are reading docs so it can be useful to have some background:
control plane
: The thing that receives yourkubectl
requests and then takes action.API server
: A REST API on HTTPS whichkubectl
connects to, and also what Pods can use internally (with service accounts).
scheduler
: Watches for new pod requests and selects a node to run it on.controller manager
: runs internal components, for example thekube-controller-manager
observes node availablity.etcd
is the Kubernetes data store. It is a distributed key-value database, which is replicated across many instances.kubelet
: background agent that runs on the server (not in a pod/container), receives requests to create Pods and sends heartbeats to the API server.kube-proxy
: routes traffic b/w pods or Pods to the outside world. This runs as a DaemonSet on every node.container runtime
: This is typically Docker, but it can be other things like CRI-O or containerd. It is the thing that runs the containers.