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
● 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