What are the components of Kubernetes master and explain each component’s function?

Kubernetes Master Components: Etcd, API Server, Controller Manager, and  Scheduler | by Jorge Acetozi | jorgeacetozi | Medium

API Server:

  • All the incoming/outgoing communication with Kubernetes cluster happening through API Server.
  • APIServer is a RESTful server.
  • Workstations/Client uses Kubectl tool for communicating with the API Server.
  • API Server expects the inputs in JSON format.
  • All the communication with the Master node worker nodes are also happening through API Server.
  • Scheduler/Controller Manager uses API Server for all the communications with the worker nodes.
  • Authentication and authorization.

Etcd:

  • This is the storage mechanism Kubernetes Master node has.
  • All the details about the cluster configurations and deployments details will be stored in it.
  • Stores in key-value format.
  • Communicates with API Server only.
  • Duties: Config management, Service discovery, Cordinating distributed work.
  • With out this we can say Kubernetes cluster is literally dead.

Scheduler:

  • Scheduler is responsible for scheduling works to the available pods.
  • It intelligently distribute the work to different nodes based on the current work load of the nodes.
  • It also consider contraints, available resources etc, before assigning a work.
  • Scheduler will provide the self healing fecility on receiving request from controller manager.

Controller Manager:

  • Controller manager controlls/monitors the state of each and everything in the cluster.
  • It repeatedly checks the health of each nodes and pods.
  • It used the watch mechansim provided by the API Server.
  • It will communicate with Scheduler if anything went wrong.