The architecture of Kubernetes consists of following components:
Master: There is a master node that is responsible for managing the cluster. Master performs following functions in a cluster.
- Scheduling Applications
- Maintaining desired state of application
- Scaling applications
- Applying updates to applications
Nodes: A Node in Kubernetes is responsible for running an application. The Node can be a Virtual Machine or a Computer in the cluster. There is software called Kubelet on each node. This software is used for managing the node and communicating with the Master node in cluster.
There is a Kubernetes API that is used by Nodes to communicate with the Master. When we deploy an application on Kubernetes, we request Master to start application containers on Nodes.