Kubernetes - Static Pods
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
.