đź’ Cluster
The story begins with the cluster. When you deploy Kubernetes you will get a cluster. A Kubernetes cluster consists of a set of worker machines, called nodes and a master node.
đź’ Control Plane
We can say, this is the brain of the Kubernetes cluster. Developers instruct Kubernetes to define, deploy, and manage the container lifecycle through the API and interfaces exposed by the control plane.
Traditionally, the node where the control plane is deployed is called the master node.
Control Plane Components
kube-apiserver
The API server is the front end for the Kubernetes control plane. It exposes REST API that allows developers to interact with the control plane. Also, it has interfaces to connect worker nodes.
etcd
Distributed key-value store stores all cluster formation.
kube-scheduler
The Kubernetes scheduler assigns Pods to Nodes. The scheduler determines which Nodes are valid placements for each Pod in the scheduling queue according to constraints and available resources.
kube-controller-manager
Manages the state of the cluster. e.g.
Node controller: Responsible for noticing and responding when nodes go down.
Job controller: Watches for Job objects that represent one-off tasks, then creates Pods to run those tasks to completion.
EndpointSlice controller: Populates EndpointSlice objects (to provide a link between Services and Pods).
ServiceAccount controller: Create default ServiceAccounts for new namespaces.
cloud-controller-manager
The cloud controller manager lets you link your cluster to your cloud provider's API and separates the components that interact with that cloud platform from components that only interact with your cluster.
đź’ Node
A workload is an application running on Kubernetes. Whether your workload is a single component or several that work together, on Kubernetes you run it inside a set of pods.
Kubernetes runs your workload by placing containers into Pods to run on Nodes. A node may be a virtual or physical machine, depending on the cluster.
Node Components
kubelet
This is a demon running on each worker node. It communicates with the control plane and based on the instructions provided It makes sure that containers are running in a Pod.
kube-proxy
kube-proxy is a network proxy that runs on each node in your cluster, implementing part of the Kubernetes Service concept.
Container Runtime Interface (CRI)
A fundamental component that empowers Kubernetes to run containers effectively. It is responsible for managing the execution and lifecycle of containers within the Kubernetes environment.
đź’ Pod
Pods are the smallest deployable units of computing that you can create and manage in Kubernetes.
A Pod (as in a pod of whales or pea pod) is a group of one or more containers, with shared storage and network resources, and a specification for how to run the containers.
[Reference: https://kubernetes.io/docs/home/]