OpenShift  Kubernetes Master Machine Components  Kubernetes Node Components Etcd:  It stores the configuration information, which can be used by each of the nodes in  the cluster. It is a high availability key value store that can be distributed among multiple  nodes. It should only be accessible by Kubernetes API server as it may have sensitive  information. It is a distributed key value Store which is accessible to all. API Server:  Kubernetes is an API server which provides all the operation on cluster using  the API. API server implements an interface which means different tools and libraries can  readily communicate with it. A kubeconfig is a package along with the server side tools  that can be used for communication. It exposes Kubernetes API”.  Controller Manager: This component is responsible for most of the collectors that  regulate the state of the cluster and perform a task. It can be considered as a daemon  which runs in a non-terminating loop and is responsible for collecting and sending  information to API server. It works towards getting the shared state of the cluster and  then make changes to bring the current status of the server to a desired state. The key  controllers are replication controller, endpoint controller, namespace controller, and  service account controller. The controller manager runs different kind of controllers to  handle nodes, endpoint, etc. Scheduler:  It is a key component of Kubernetes master. It is a service in master which  is responsible for distributing the workload. It is responsible for tracking the utilization of  working load on cluster nodes and then placing the workload on which resources are  available and accepting the workload. In other words, this is the mechanism responsible  for allocating pods to available nodes. The scheduler is responsible for workload utilization  and allocating a pod to a new node.  Following are the key components of the Node server, which are necessary to  communicate with the Kubernetes master. Docker: The first requirement of each node is Docker which helps in running the  encapsulated application containers in a relatively isolated but lightweight operating  environment. Kubelet Service:  This is a small service in each node, which is responsible for relaying  information to and from the control plane service. It interacts with etcd store to read the  configuration details and Wright values. This communicates with the master component  to receive commands and work. The kubelet process then assumes responsibility for  maintaining the state of work and the node server. It manages network rules, port  forwarding, etc.  Kubernetes Proxy Service:  This is a proxy service which runs on each node and helps  in making the services available to the external host. It helps in forwarding the request to  correct containers. Kubernetes Proxy Service is capable of carrying out primitive load  balancing. It makes sure that the networking environment is predictable and accessible  but at the same time it is isolated as well. It manages pods on node, volumes, secrets,  creating new containers health checkup, etc.  14 