The kube-apiserver

The kube-apiserver is the most essential and complicated component in Kubernetes.

It sits in the center of Kubernetes as the primary management point, receiving and handling all RESTful requests, such as creating/updating/deleting a Pod, querying a group of resources, etc. It accepts various kinds of information from requests and disseminates them to all clients. The kubectl client is one of the most commonly used clients for interacting with the kube-apiserver. We can think of the kube-apiserver as the front-end server for the control plane. This is why we regard the kube-apiserver as the “heart” of Kubernetes.

It’s the only component allowed to communicate with the back-end etcd storage. This is an excellent way to decouple applications with data, which makes the kube-apiserver stateless and horizontally scalable. The kube-apiserver is so essential that it should be deployed with multiple replicas to provide high availability service for the entire cluster. Additionally, security must be taken into account, which is crucial for such a distributed system.

The kube-apiserver provides authentications and authorizations for all requests, including those from other Kubernetes components, such as kube-scheduler, kube-controller-manager, etc.

The kube-apiserver will also create and maintain RESTful APIs for every CRD (Custom Resource Definition)Kubernetes supports building your own Kubernetes-style APIs..

Get hands-on with 1400+ tech skills courses.