CertGrid CertGrid
Concepts·Certified Kubernetes Administrator

Static Pods

Your control plane is four static pods. Drop a manifest in a directory on a node and the kubelet runs it with no scheduler, no controller and no API server involved. See why kubectl delete cannot remove one, and why that is exactly what a control plane needs.

Cluster Architecture and Configuration Guide 14 of 103 Intermediate

Mirror hashes, addresses and line numbers in the kubelet config differ per cluster. The mechanism does not.

The static pod is created on the worker; every observation is made through the control plane.
Server NameIP AddressOSRolesCPURAMHDD
CKA1001192.168.0.175Ubuntu 26.04 LTSControl Plane Node2 Core4 GB50 GB
CKA1001-NODE01192.168.0.176Ubuntu 26.04 LTSWorker Node2 Core4 GB50 GB
CKA1001-NODE02192.168.0.177Ubuntu 26.04 LTSWorker Node2 Core4 GB50 GB
CKA1001-NODE03192.168.0.178Ubuntu 26.04 LTSWorker Node2 Core4 GB50 GB

This guide includes

Use this when a Pod refuses to be deleted, or when something has to run on a node before the API server exists. This matters because your control plane is already four static Pods - the kubelet runs them from disk and the API server only mirrors them.

Before you start

  1. You have been running static pods since day one

  2. How to tell a static pod from a normal one

  3. Where the kubelet looks

  4. Create one on a worker

  5. Watch it appear through the API

  6. kubectl delete cannot remove it

  7. Remove the file instead

Official sources