Aide-mémoire CKAD
exemple upgrade kubeadm Kubernetes
Sur chaque nœud, mettre kubeadm à jour, lancer apply ou upgrade node, drain, mettre le kubelet à jour, le redémarrer, et uncordon. Un nœud à la fois. Ne pas sauter de version mineure.
apt-mark unhold kubeadm
apt-get update
apt-get install -y kubeadm='1.35.0-*'
apt-mark hold kubeadm
kubeadm version
kubeadm upgrade plan
kubeadm upgrade apply v1.35.0
apt-mark unhold kubeadm kubectl
apt-get install -y kubeadm='1.35.0-*' kubectl='1.35.0-*'
apt-mark hold kubeadm kubectl
kubeadm upgrade node
kubectl drain node-1 --ignore-daemonsets --delete-emptydir-data
apt-mark unhold kubelet
apt-get install -y kubelet='1.35.0-*'
apt-mark hold kubelet
systemctl daemon-reload
systemctl restart kubelet
kubectl uncordon node-1
kubeadm init --pod-network-cidr=10.244.0.0/16
kubeadm token create --print-join-command
kubeadm join 10.0.0.1:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>
Champs
- apt-mark
- Les paquets sont gelés. unhold avant install, hold de nouveau après. Retirer sudo quand le shell est déjà root.
- apt-get
- Installer la version nommée par la tâche. 1.35.0-* est le paquet. Pas de v sur l’épingle apt.
- kubeadm version
- Confirme le binaire kubeadm avant plan. Il doit être la mineure cible.
- kubeadm upgrade plan
- Premier control plane seulement. Affiche les versions que vous pouvez apply. Chaque nœud doit être Ready.
- kubeadm upgrade apply
- Premier control plane seulement, le nœud qui a /etc/kubernetes/admin.conf. L’argument est v1.35.0, avec le v.
- kubeadm upgrade node
- Chaque autre control plane, et chaque worker. Ne pas y lancer upgrade apply.
- kubectl drain
- Avant le paquet kubelet sur ce nœud. --ignore-daemonsets --delete-emptydir-data. Le lancer depuis un nœud qui a encore kubectl.
- systemctl
- daemon-reload, puis restart kubelet. systemctl status kubelet montre le nouveau processus.
- kubectl uncordon
- Après le retour du kubelet. Le nœud peut reprendre des Pods. Puis passer au nœud suivant.
- kubeadm init
- Crée le premier control plane. Un CNI doit encore être installé avant que les nœuds passent Ready.
- kubeadm token
- Affiche une commande join. Le token et le hash ca-cert sont ce que kubeadm join consomme.
- kubeadm join
- À lancer sur le nouveau nœud. Hôte de l’API server:6443, le token, et --discovery-token-ca-cert-hash sha256:…
Pièges
- Un nœud à la fois. kubeadm upgrade apply est le premier control plane, celui qui a /etc/kubernetes/admin.conf. Chaque control plane suivant et chaque worker est kubeadm upgrade node. Ne pas sauter de version mineure.
- upgrade apply veut chaque nœud Ready, et il ne met pas à jour le binaire kubelet. Sur ce même nœud, drain, installer le paquet kubelet, daemon-reload, redémarrer kubelet, uncordon. Puis le nœud suivant.
- Les paquets sont gelés. unhold, install, hold. kubeadm upgrade apply prend v1.35.0. L’épingle apt est 1.35.0-* sans v. Remplacer 1.35.0 par la version nommée par la tâche. Sur un worker, mettre kubectl à jour dans la même étape que kubeadm.
- Quand le nœud ne joint pas de miroir de paquets, les debs sont déjà sur le disque. Installer la version nommée par la tâche. kubeadm init n’installe pas de CNI. Les nœuds restent NotReady tant que l’add-on réseau n’est pas en place.
Doc officielle Upgrading kubeadm clusters Upgrading Linux nodes