Pages

Tuesday, August 7, 2018

Control Plane Component - Controllers

Share it Please
As we know that etcd stores data, Api server collects request and save them to etcd and scheduler identifies suitable nodes for the pods to host. But who will make sure to maintain the exact state. That is to make sure the number of pod replicas are running as defined in the pod manifest. This is making sure that a desired state is obtained. This is the place where controller or control manager come into picture. The control manager is combination of many controllers which perform their job as defined.

Some of the controller include,
      Replication Manager
      ReplicaSet, DaemonSet, and Job controllers
      Deployment controller
      Node controller
      Service controller
      Namespace controller
      PersistentVolume controller

These controller consist of a reconciliation loops which will make sure that a resource is in desired state. Some include,

Replication controller ensures all the replication controllers run on the pod desired number. A ReplicationController ensures that a specified number of pod replicas are running at any one time.

Node Controller - This controller responds when nodes go down. This will take care of node health status check. Based on the status it will make sure the node is removed if unreachable. This also make sure to keep all the nodes in the cluster up to date.

End Point Controller - This takes care of associating the relationship between services and pods.

Service Account and Token controller are used to control default account and API access tokens.

As defined controller perform the task they are defined for. First they watch for the API server to send updates on the resource changes. As said each controller contains a reconciliation loop which check for the desired state with the actual state. If different an appropriate controller will start and do the job of making the actual and desired state similar. These controller also watch for Api updates and act accordingly.

We understood what each of the component does and how they talk, but none of the control plane or master node components will create the pod. They talk between them and make a call to a process running on worker node to actually create the pod. This process is called as Kubelet

No comments :

Post a Comment