Cluster
It is a set of machines connected and work together to run as a single unit. The idea is deploying the containerized application without tying them to a specific machine.
There are mainly two component of any k8s cluster –
- Master Node or Control Plane
- Worker Nodes
- Virtual Network

Control Plane
In general it is the control panel of a cluster and manages the entire cluster.
- It runs the API server which works as the entry point for the Kubernetes cluster.
- It runs the controller manager which keeps an overview of the cluster and Maintain application desired state.
- It runs scheduler which is responsible for scheduling containers and pods for different nodes based on workload and available server resources on each node. After deciding which Node to use for pod or container creation it actually sends the requests to the particular node’s kubelet process and kubelet does the creation of the pod and containers.
- Another important thing that runs is ETCD Key-value storage which holds the current state of the cluster.
Nodes
It is a physical computer or VM that serves as a worker machine in a k8s cluster.
It is a physical computer or VM that serves as a worker machine in a k8s cluster.
- Each worker node have docker containers of different application deployed on it.
- The kubelet manage the node ****talk to the control plane.
- The node use Kubernetes API to communicate to the control plane.
- Two node can’t have the same name as name identifies the node.
# Start the cluster with minikube
$ minikube start
# Get the cluster info
$ kubectl cluster-info
# Get node information
$ kubectl get nodes