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.

Deux membres d’équipage portent un cœur lumineux vers un chasseur ouvert. Deux membres d’équipage portent un cœur lumineux vers un chasseur ouvert.
Premier control plane
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
Chaque autre nœud
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
Kubelet sur ce même nœud
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
Joindre un nœud
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

S’entraîner sur un cluster réel →