Kubernetes Control Plane API Server

The Kubernetes API server is a key component of the Kubernetes control plane that exposes the Kubernetes API, acting as a sort of “front-end” for the control plane by receiving and processing RESTful requests, validating them, and then executing the contained instructions, allowing various parts of the system to communicate and interact with each other.

Manifests in Kubernetes are typically YAML or JSON files that define the desired state of Kubernetes objects, such as pods, services, or deployments. These manifests are sent to the Kubernetes API server, which processes them to manage the various components of the Kubernetes cluster.

When you submit a manifest to the Kubernetes API server (usually via the kubectl apply command), the API server reads the file and validates it. The server checks that the syntax and structure of the file follow the correct format and that all necessary fields are included.

Once validated, the API server uses the instructions in the manifest to modify the state of the Kubernetes cluster to match the desired state defined in the manifest. This could mean creating a new pod, updating an existing service, or making any other changes specified in the manifest.

The API server then communicates these changes to the relevant components in the Kubernetes control plane and worker nodes. These components then carry out the instructions from the API server, creating, modifying, or deleting Kubernetes objects as needed to align the actual state of the Kubernetes cluster with the desired state defined in the manifest.

In this way, Kubernetes manifests and the API server interact to allow you to define and manage the state of your Kubernetes cluster.

Best practice

  • Run multiple, 3 or 5, control plane nodes across multiple availability zones.
  • Do not run user applications on control plane nodes to avoid disturbing the resources the control plane nodes should be spending on managing the cluster.
Last modified July 21, 2024: update (e2ae86c)