A Pod that is managed directly by the kubelet on a node, not by the K8s API server. They can run even if there is no K8s API server present.

Kubelet will automatically create a static Pods from YAML manifest files located in the manifest path on the node.

Mirror Pods Kubelet will create a mirror (ghost) Pod for each static Pod. Mirror Pods allow you to see the status of the static Pod via the K8s API (kubectl), but you cannot change or manage them via the API.

  1. Create a static pod manifest file.YAML content:

    sudo vi /etc/kubernetes/manifests/my-static-pod.yml
    
    apiVersion: v1
    kind: Pod
    metadata:
      name: my-static-pod
    spec:
      containers:
      - name: nginx
        image: nginx:1.19.1
    
  2. Restart kubelet to start the static pod.

    sudo systemctl restart kubelet
    
  3. Log in to the Control Plane Node.

  4. Check the status of your static Pod.

    kubectl get pods
    
  5. If you wish, you can attempt to delete the static Pod using the k8s API. The Pod will be immediately re-created since it is only a mirror(ghost) Pod created by the worker kubelet to represent the static Pod.

    kubectl delete pod my-static-pod-<worker node name>