Static pods are created directly by the kubelet without the intervention of the API server or other control plane components.
Configuring the Static Pods Directory
You can place static pods in any directory on the host. The directory location is provided to the kubelet at startup by using the--pod-manifest-path option. Below is an example configuration in the kubelet service file:
--pod-manifest-path option in the kubelet service file. If it is not present, look for the --config option to locate the configuration file and check its staticPodPath setting.
You can verify the status of static pods using container runtime commands. For instance, running the Docker command below on a host shows the containers spawned by static pods:
docker ps because the kube-apiserver is not available to process Kubernetes API requests.
Behavior When Part of a Cluster
When a node is part of a Kubernetes cluster, the kube-apiserver instructs the kubelet to create pods via its HTTP API endpoint. In this mixed mode, the kubelet handles pod definitions provided both from the static pod directory and from the API server. Whenever the kubelet creates a static pod in this configuration, it also creates a mirror object in the kube-apiserver. This mirror object is read-only and can be viewed withkubectl get pods, but you cannot modify or delete it through the API. To update a static pod, modify the file in the node’s manifest directory.
For example, running the command below on the master node will display the static pod mirror:

Static Pods vs. DaemonSets
A common question that arises is how static pods differ from DaemonSets. The table below summarizes the key differences between the two:
Static pods are especially useful for deploying control plane components themselves. Once the kubelet is installed on all master nodes, you can create pod definition files for essential components like the API server and controller manager. By placing these files in the designated manifest folder, the kubelet ensures they are running as pods and restarts them automatically if they fail. When you check the pods in the kube-system namespace, you’ll see these control plane components running as pods—a standard configuration in clusters set up using kubeadm.

This lesson has detailed the concept of static pods, their configuration, and their behavior both in standalone and clustered environments. Using static pods is a simplified yet powerful method to manage critical workloads without relying on the full Kubernetes control plane.