Kubernetes staticPods

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Type Pods gérés directement par un kubelet local
Emplacement manifeste /etc/kubernetes/manifests/ (par défaut)
Usage notable Composants du control plane d'un cluster kubeadm
Voir aussi Kubeadm · Kubernetes deployments · Kubernetes multicontainers

Un static Pod est un Pod géré directement par le kubelet d'un nœud donné, en dehors de toute intervention du kube-apiserver ou d'un contrôleur. Le kubelet surveille un répertoire de manifestes local (par défaut /etc/kubernetes/manifests/) : tout fichier YAML qui y apparaît est démarré comme Pod sur ce nœud, et redémarré automatiquement s'il s'arrête.

C'est précisément ce mécanisme qu'utilise kubeadm pour faire tourner les composants du control plane (kube-apiserver, kube-controller-manager, kube-scheduler, et souvent etcd) comme des Pods ordinaires plutôt que comme des services systemd dédiés — ce qui permet de les superviser et de consulter leurs logs avec les mêmes outils que n'importe quel autre Pod.

Usage

# déposer un manifeste dans le répertoire surveillé par le kubelet
sudo vi /etc/kubernetes/manifests/my-static-pod.yml

# le kubelet détecte le nouveau fichier automatiquement ; un redémarrage
# du service force une relecture immédiate si besoin
sudo systemctl restart kubelet

kubectl get pods

Supprimer un static Pod via l'API ne fait que supprimer sa représentation côté API server : le kubelet le recrée immédiatement, puisque le fichier manifeste est toujours présent sur le disque du nœud.

kubectl delete pod my-static-pod-<nom_du_noeud>

Pour supprimer réellement un static Pod, il faut retirer (ou déplacer hors du répertoire surveillé) son fichier manifeste sur le nœud concerné.

Mirror Pods

Pour rester visible via l'API standard (kubectl get pods, kubectl logs...), chaque static Pod est représenté côté kube-apiserver par un mirror Pod en lecture seule : il reflète l'état du static Pod réel, mais ne peut pas être modifié via l'API — toute tentative d'édition doit passer par le fichier manifeste local sur le nœud.

Voir aussi