Kubernetes - Static Pods
Static Pods are defined in /etc/kubernetes/manifests (When installing Kubernetes with the kubeadm tool.)
Examples:
- Kubernetes' components:
kube-apiserverkube-controller-managerkube-scheduleretcd
- Other useful stuff:
haproxykeepalived
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.