Aide-mémoire CKAD
exemple YAML Pod statique Kubernetes
Le kubelet lit les fichiers Pod de son répertoire de manifestes et maintient ces conteneurs. L’API server n’en reçoit qu’un miroir.
apiVersion: kubelet.config.k8s.io/v1beta1
kind: KubeletConfiguration
staticPodPath: /etc/kubernetes/manifests
apiVersion: v1
kind: Pod
metadata:
name: static-web
namespace: default
spec:
containers:
- name: web
image: nginx:1.27
mkdir -p /etc/kubernetes/manifests
kubectl get nodes
kubectl get pods -o wide
kubectl delete pod static-web-node-1
mv /etc/kubernetes/manifests/static-web.yaml /tmp/static-web.yaml
Champs
- staticPodPath
- Champ de la config kubelet. kubeadm pose /etc/kubernetes/manifests. L’ancien flag est --pod-manifest-path.
- metadata.name
- Le Pod miroir est ce nom, un tiret, puis le nom du nœud. Lire le nœud avec kubectl get nodes.
- containers
- kind: Pod seulement. Un fichier Deployment dans ce répertoire n’est pas un Pod statique.
- image
- Déjà présente sur le nœud si le nœud ne peut pas pull. Les tags busybox et nginx dépendent de la tâche.
- kubectl get
- Montre le miroir. -o wide affiche le nœud. Les conteneurs peuvent tourner avant que cet objet existe.
- kubectl delete
- Supprime le miroir. Le kubelet le recrée à partir du fichier.
- mv
- Sortir du répertoire arrête le Pod. L’y remettre le démarre. Le kubelet scanne environ toutes les 20 secondes.
- mkdir
- kubeadm a déjà /etc/kubernetes/manifests. Créer le répertoire seulement s’il manque.
Pièges
- Le nom du Pod miroir est metadata.name, un tiret, et le nom du nœud. kubectl delete retire ce miroir, et le kubelet le réécrit. Déplacer le fichier hors du répertoire de manifestes arrête les conteneurs.
- kubeadm pointe le kubelet sur /etc/kubernetes/manifests. Le champ de config est staticPodPath. Le flag déprécié est --pod-manifest-path. Un fichier nouveau est pris au scan suivant, environ toutes les 20 secondes. Redémarrer le kubelet quand on change le répertoire, pas quand on ajoute un fichier.
- Le kubelet lit chaque fichier de ce répertoire dont le nom ne commence pas par un point. Une copie laissée à côté du manifeste devient un second Pod. Garder les sauvegardes dans /tmp.
- Les conteneurs continuent pendant que l’API server est arrêté. L’objet miroir est la copie de l’API, dans le namespace écrit sur le Pod.
Doc officielle Create static Pods Static Pods