What are the main parts of Kubernetes control plane architecture?

A quick recap of kubernetes control plane architecture.

What are the main parts of Kubernetes control plane architecture?
Photo by Growtika / Unsplash
  • An instance of Kubernetes is called a cluster.
  • Each cluster has a control plane and at least one worker node.
  • Think of the control plane like air traffic control at a busy airport with people overlooking the cluster to make sure nodes and pods are created, modified, and deleted without any issues.
  • The control plane consists of several components:
    • The API Server component exposes the Kubernetes API. kubectl and kubeadm are CLI tools to communicate with the Kubernetes API via HTTP requests. The kube API server is a containerized application run as a pod.
    • The etcd component saves all data about the state of the cluster. Only the Kube API server can communicate directly with etcd. etcd runs is a containerized application run as a pod.
    • The kube scheduler component identifies newly created pods that have not been assigned a worker node and then chooses a node for the pod to run on. Similar to others, the scheduler also runs as a pod.
    • The kube controller manager component is a loop that runs continually and checks the status of a cluster to make sure things are running properly.
    • The Cloud controller manager component allows the cluster to connect with a cloud provider's API so you can use cloud resources from AWS, GCP, Azure, or any public cloud.

Note: If you're using a managed Kubernetes service like AWS's EKS, or Google's GKE, you will not be able to see your control plane nodes using kubectl. Those are hidden because the cloud provider is managing those for you.