Hinweis: Das folgende Beispiel zeigt das Upgrade eines Kubernetes-Clusters von Version 1.23 auf 1.24. Ersetzen Sie die Versionsnummern entsprechend Ihrer spezifischen Einrichtung.

Um ein nahtloses Upgrade zu gewährleisten, ist es wichtig, diese Schritte der Reihe nach zu befolgen:
- Aktualisieren Sie den Knoten "Control Plane".
- Upgrade von Worker Nodes.
Aktualisieren Sie außerdem die folgenden Komponenten sowohl auf der Steuerungsebene als auch auf den Worker-Knoten:
- Kubeadm
- Kubelet
- Kubectl
Bevor Sie mit dem Upgrade beginnen, müssen Sie die Namen des Clusters und der Knoten ermitteln. Führen Sie den folgenden Befehl aus, um die Knotennamen abzurufen:
kubectl get nodes
Upgrade der Steuerungsebene (Master-Knoten)
Schritt 1: Überprüfen Sie die vorhandene Kubeadm-Version
Melden Sie sich bei der Steuerungsebene an und überprüfen Sie die vorhandene Version mit dem folgenden Befehl:
kubeadm version -o json
Schritt 2: Entscheiden Sie sich für die Upgrade-Version
Erhalten Sie eine Liste der verfügbaren Kubeadm-Versionen:
sudo apt update
sudo apt-cache madison kubeadm | tac
Alternativ können Sie auch einen kubeadm-Upgrade-Plan ausführen, um Upgrade-Vorschläge zu erhalten:
sudo kubeadm upgrade plan
Schritt 3: Entpacken Sie kubeadm und installieren Sie die gewünschte Version
Deaktivieren Sie kubeadm und installieren Sie die gewünschte Version:
sudo apt-mark unhold kubeadm && \
sudo apt-get update && sudo apt-get install -y kubeadm=1.24.6-00 && \
sudo apt-mark hold kubeadm
Schritt 4: Kubeadm-Upgrade anwenden
Wenden Sie das Upgrade an:
sudo kubeadm upgrade node
Schritt 5: Verdrängen aller Arbeitslasten aus der Steuerungsebene
Um das Upgrade durchzuführen, müssen Sie alle Workloads außer Daemonsets entfernen:
kubectl drain master-node --ignore-daemonsets
Wenn Sie lokalen Speicher verwenden, fügen Sie -delete-local-data ein:
sudo kubectl drain master-node --ignore-daemonsets --delete-local-data
Schritt 6: Upgrade von Kubelet und Kubectl
Entsperren und aktualisieren Sie kubectl und kubelet:
sudo apt-mark unhold kubelet kubectl && \
sudo apt-get update && sudo apt-get install -y kubelet=1.24.6-00 kubectl=1.24.6-00 && \
sudo apt-mark hold kubelet kubectl\
Starten Sie die Dienste neu:
sudo systemctl daemon-reload
sudo systemctl restart kubelet
Schritt 7: Entschärfen des Knotens und Überprüfen des Knotenstatus
Entkoppeln Sie den Knoten der Steuerungsebene:
kubectl uncordon master-node
Überprüfen Sie den Knotenstatus und die Version:
kubectl get nodes

Upgrade von Worker Nodes
Schritt 1: Kubeadm entpacken und erforderliche Version installieren
Installieren Sie die erforderliche Version von Kubeadm auf den Worker Nodes:
sudo apt-mark unhold kubeadm && \
sudo apt-get update && sudo apt-get install -y kubeadm=1.24.6-00 && \
sudo apt-mark hold kubeadm
Schritt 2: Upgrade von Kubeadm
Führen Sie den folgenden Befehl auf jedem Arbeitsknoten aus:
sudo kubeadm upgrade node
Schritt 3: Entleeren des Knotens
Evakuieren Sie alle Pods auf dem Arbeitsknoten, indem Sie ihn entleeren:
kubectl drain worker-node01 --ignore-daemonsets
Schritt 4: Upgrade von Kubelet und Kubectl
Aktualisieren Sie kubelet und kubectl:
sudo apt-mark unhold kubelet kubectl && \
sudo apt-get update && sudo apt-get install -y kubelet=1.24.6-00 kubectl=1.24.6-00 && \
sudo apt-mark hold kubelet kubectl
Starten Sie kubelet neu:
sudo systemctl daemon-reload
sudo systemctl restart kubelet
Schritt 5: Arbeiterknoten abkoppeln
kubectl uncordon worker-node01
Überprüfen des Cluster-Upgrades
Prüfen Sie, ob der Cluster aufgerüstet und betriebsbereit ist
kubectl get nodes
Überprüfen Sie den Status aller Clusterkomponenten:
kubectl get --raw='/readyz?verbose'
curl -k https://localhost:6443/livez?verbose
Stellen Sie außerdem sicher, dass alle kube-system control node pods laufen:
kubectl get po -n kube-system
Damit ist der Upgrade-Prozess für den Kubernetes-Cluster abgeschlossen.

