Skip to content

Kubernetes Control Plane Components

The Kubernetes Control Plane serves as the central nervous system of a Kubernetes cluster, managing the cluster's state and configuration^[400-devops__06-Kubernetes__k8s-ithelp__Day3__README.md]. It is responsible for global decision-making regarding the cluster, such as scheduling, detecting and responding to cluster events, and ensuring that the system's actual state matches the user's desired state^[400-devops__06-Kubernetes__k8s-ithelp__Day3__README.md].

Core Components

kube-apiserver

The kube-apiserver acts as the front end of the control plane^[400-devops__06-Kubernetes__k8s-ithelp__Day3__README.md]. All internal and external users—including users via kubectl, cluster nodes, and the controller manager—interact with the cluster through this component^[400-devops__06-Kubernetes__k8s-ithelp__Day3__README.md]. It is designed to process REST calls and expose the Kubernetes API horizontally by scaling^[400-devops__06-Kubernetes__k8s-ithelp__Day3__README.md].

kube-scheduler

The kube-scheduler is responsible for assigning new Pods to suitable Worker Nodes^[400-devops__06-Kubernetes__k8s-ithelp__Day3__README.md]. It monitors all Worker Nodes managed by the cluster and selects the most appropriate node based on user-defined Filtering and Scoring Policy configurations^[400-devops__06-Kubernetes__k8s-ithelp__Day3__README.md].

kube-controller-manager

The kube-controller-manager runs controller processes, which are regulatory loops that watch the shared state of the cluster and make changes to move the current state towards the desired state^[400-devops__06-Kubernetes__k8s-ithelp__Day3__README.md]. This component aggregates multiple controller functions into a single binary to reduce complexity^[400-devops__06-Kubernetes__k8s-ithelp__Day3__README.md]. Responsibilities include querying the scheduler to ensure the correct number of Pods are running, restarting stopped Pods, and connecting services to Pods to route requests to the correct ports^[400-devops__06-Kubernetes__k8s-ithelp__Day3__README.md].

etcd

etcd is a consistent and highly-available key-value store used as the backing store for all cluster data^[400-devops__06-Kubernetes__k8s-ithelp__Day3__README.md]. It retains the cluster state and configuration settings, allowing for the rapid restoration of the cluster's current state following a crash^[400-devops__06-Kubernetes__k8s-ithelp__Day3__README.md].

Sources

  • 400-devops__06-Kubernetes__k8s-ithelp__Day3__README.md