logo

Kubernetes - Static Pods

Last Updated: 2024-01-31

Static Pods are defined in /etc/kubernetes/manifests (When installing Kubernetes with the kubeadm tool.)

Examples:

  • Kubernetes' components:
    • kube-apiserver
    • kube-controller-manager
    • kube-scheduler
    • etcd
  • Other useful stuff:
    • haproxy
    • keepalived

Static Pods are managed directly by the kubelet daemon on a specific node, without the API server observing them. I.e.kubelet watches /etc/kubernetes/manifests.

Static Pods are under namepace kube-system.

To check kubelet status: systemctl status kubelet

To check kubelet logs: journalctl -u kubelet

To check static pods logs:

$ crictl ps
$ crictl logs <container>

Mirror pods

The kubelet automatically creates a mirror pod on the api-server for each static pod. This means that the pods running on a node are visible on the API server, but cannot be controlled from there.

To check the mirror Pods:

$ kubectl get pods

How to check if a pod is a static pod?

Checking the owner reference of a static pod using kubectl describe command should indicate that such a pod is not owned by a ReplicaSet but by Node.