Hands-on Lab·Certified Kubernetes Administrator
Control Plane and Node Components
Every diagram of Kubernetes architecture shows five boxes. On a kubeadm cluster four of them are Pods you can list and one is a systemd unit that is not, and knowing which is which decides where you look when something breaks.
Foundations Guide 3 of 103 Beginner
- Kubernetes1.36.4
- Cluster4 nodes
- Runtimecontainerd 2.2.6
- CNICalico v3.32.1
- TimeAbout 30 min
Component flags below are what kubeadm chose. Another installer picks different ones; the components are the same.
- etcd3.6.8
| Server Name | IP Address | OS | Roles | CPU | RAM | HDD |
|---|---|---|---|---|---|---|
| CKA1001 | 192.168.0.175 | Ubuntu 26.04 LTS | Control Plane Node | 2 Core | 4 GB | 50 GB |
| CKA1001-NODE01 | 192.168.0.176 | Ubuntu 26.04 LTS | Worker Node | 2 Core | 4 GB | 50 GB |
| CKA1001-NODE02 | 192.168.0.177 | Ubuntu 26.04 LTS | Worker Node | 2 Core | 4 GB | 50 GB |
| CKA1001-NODE03 | 192.168.0.178 | Ubuntu 26.04 LTS | Worker Node | 2 Core | 4 GB | 50 GB |
This guide includes
Use this when a control plane component is failing and you need to know where it actually lives. This matters because on a kubeadm cluster the control plane is four YAML files on disk, running as Pods that no controller manages.
- finding the four static manifests that are the entire control plane
- proving those Pods are not ordinary Pods by reading their ownerReferences
- seeing that the kubelet is the exception - a systemd unit rather than a Pod
- reading each component's own start-up flags back through the API
- breaking health down with
/livez?verbose, and reading etcd's members and the scheduler's decisions
Before you start
- A kubeadm cluster and
kubectl. Any of the installation guides gets you one. - SSH access to the control plane node with
sudo, for the two commands that read the filesystem. - The kubectl session guide, for
custom-columnsand JSONPath.
-
Four files on disk are the entire control plane
-
Where each component actually runs
-
The proof those Pods are not ordinary Pods
-
The kubelet is the exception, and that is the important part
-
The runtime below the kubelet
-
Read the components' own arguments
-
Ask the API server whether it is healthy, and how
-
etcd, the one component holding state
-
See the scheduler's decisions in the event log