What are the main parts of Kubernetes control plane architecture?
A quick recap of kubernetes control plane architecture.
- 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
andkubeadm
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.
- The API Server component exposes the Kubernetes API.
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.