![]() It is a separate component that only interacts with the cloud platform. cloud-controller-managerĬloud-controller-manager allows us to connect our on-premises Kubernetes cluster to the cloud-hosted Kubernetes cluster. We need to set up a proper backup plan for etcd so if something happens to the cluster we can restore the backup and come back to the business quickly. It is totally different open-source product backed by the Cloud Native Computing Foundation. If other control plane’s components have to access etcd, it has to go through kube-api-server. etcd is only accessible by Kube-api-server. It is a consistent, distributed, and a highly-available key-value store. For example, whenever we create a new namespace, we need a service account and access token to access it so these controllers are responsible for creating default accounts and API access token for the new namespace.Įtcd is the default data store for Kubernetes that stores all cluster data. Service account and token controllers: – Responsible for creating default accounts and the API access token.Endpoints controller: – it creates the Endpoints object, for example, to expose the pod externally we need to join it to a service.Replication controller: – It ensures that the correct numbers of pods are running for every replication controller object in the cluster.Node controller: – it manages nodes and keeps an eye on available nodes in the cluster and responds if any node goes down.It includes node controller, replication controller, endpoints controller, and service account and token controllers. ![]() ![]() It ensures that the current state matches the desired state, if the current state does not match the desired state, it makes appropriate changes to the cluster to achieve the desired state. It is actually comprised of four processes and runs as a single process to reduce complexity. Kube-controller-manager is responsible for running controller processes. If more than one node has the same score then it chooses one randomly. Once it filters out all feasible nodes, it assigns a score to each feasible node based on active score rules and it runs the pod on the node which has the highest score. In filtering, Kube-scheduler finds a feasible node by running checks like node has enough available resource that is mentioned for this pod. ![]() Kube-scheduler uses 2 step process to select a node for the pod in the cluster, filtering, and scoring. Feasible node is the node that fulfills all the requirements for a pod to schedule. If there is no node available that meets the specified requirements then the pod is not deployed and it remains unscheduled until the Kube-scheduler does not find a feasible node. by specifying affinity, anti-specification or constraint in the YAML file before deploying a pod or a deployment. However, it is possible to schedule a pod or a group of pods on a specific node, in a specific zone or as per node label, etc. Kube-scheduler is responsible for scheduling newly created pods to the best available nodes to run in the cluster. There is more than one api-server that can be deployed horizontally to balance the traffic using a load balancer. It services REST operations and provides a front end for the Kubernetes control plane that exposes the Kubernetes API through which other components can communicate to the cluster. Kube-api-server is the main component of the control plane as all traffic goes through api-server, other components of the control plane also connect to api-server if they have to communicate with ‘etcd’ datastore as only Kube-api-server can communicate with ‘etcd’. Kubernetes Control Plane has five components as below: Let’s understand about different components of Kubernetes Control Plane. ‘kube-apiserver’ communicate with other control plane’s component that is ‘etcd’ data store and it fetches the data and sends back to the console via HTTPs and we see the details of nodes on our terminal. Here, when we run this command, it makes an API call through HTTPs to the cluster and it is handled by ‘kube-apiserver’. $ kubectl get nodes: The kubectl is a command-line tool that we use to interact with the Kubernetes cluster and manage it. ![]() Let’s understand the working of Kubernetes control plane by an example, given below: – Web development, programming languages, Software testing & others ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |