Kubernetes - Static pods
Alasta 17 Août 2024 kubernetes kubernetes pod
Description : Kubernetes, les pods static
Kubernetes - Static Pods
Les Static Pods sont gérés directement par le démon kubelet sur chaque node spécifique sans que l’API Server
ne le monitor.
Contrairement aux pods qui sont gérés par le control plane (via Deployment par exemple), à la place c’est kubelet qui les gère et qui les redémarres quand il y en a un qui crash.
L’API server voit aussi ces pods mais ne les controle/gère pas, au travers d’un mirror pod sur l’API server. Ces pods sont suffixés avec le hostname du node avec un tiret (ex kube-scheduler-controlplane).
Ceci ne prend en compte que les pods, pas les déloyments, replicaSet … Use case: sur le control plane, kube-apiserver, etcd, controller-manager…
Configuration
Ces Static Pods sont dans le dossier suivant:
- /etc/kubernetes/manifests/
La modification d’un des manifests de pod entrainnera la suppression puis recréation du pod.
Le path de ce dossier se trouve dans la configuration du démon kubelet (staticPodPath).
Une alternative mais dépréciée est de configurer kubelet sur un node avec un manifest local en utilisant l’argument suivant à la CLI: –pod-manifest-path=/etc/kubernetes/manifest/.
Il faudra redémarrer kubelet s’il y a modification de la configuration.
Static Pods Vs DaemonSets
Static pods
Créé par kubelet
Déploie des composants du control plane
Ignoré par le kube-scheduler
DaemonSets
Créé par kune-apiserver (DaemonSet controller)
Déploie des agents sur les nodes comme pour le monitoring, logging.