Zum Inhalt

Cluster Upgrade

Ziel

In diesem Hands-On lernen Sie, wie ein Kubernetes Cluster mit kubeadm aktualisiert wird. Sie werden:

  • die Controlplane Node upgraden
  • anschließend die Worker Nodes upgraden
  • den Zustand des Clusters während des Upgrades überwachen

Vorbereitung

  • Verbinden Sie sich auf die Controlplane Node:
ssh controlplane-0
  • Setzen Sie die kubeconfig:
export KUBECONFIG=/etc/kubernetes/admin.conf
  • Prüfen Sie den aktuellen Zustand:
kubectl get nodes
kubectl get pods -A
  • Prüfen Sie die aktuelle Version:
kubectl version
kubeadm version

Aufgabe 1 - Controlplane Node upgraden

1.1: Kubernetes Repository anpassen

  • Öffnen Sie die /etc/apt/sources.list.d/kubernetes.list Datei:
cat /etc/apt/sources.list.d/kubernetes.list
  • Aktualisiere Sie die Version in der URL von 1.34 zu 1.35:

1.2: Neue Version prüfen

apt-get update
apt-cache madison kubeadm
  • Merken Sie sich die genaue Version (z.B. 1.35.x) für die nächsten Schritte.

👉 Die neue Version 1.35 sollte jetzt verfügbar sein


1.3: kubeadm upgraden

  • Aktualisieren Sie kubeadm auf die neue Version aus dem vorigen Schritt:
apt-get install --allow-change-held-packages -y kubeadm='1.35.x-*'
  • Prüfen Sie die installierte Version:
kubeadm version

1.3: Upgrade planen

  • Planen Sie das Upgrade:
kubeadm upgrade plan

👉 Prüfen Sie:

  • verfügbare Versionen
  • Upgrade-Pfad

1.4: Controlplane upgraden

  • Führen Sie das Upgrade durch:
kubeadm upgrade apply <VERSION>

👉 Beobachtung:

  • Controlplane Komponenten werden aktualisiert
  • Static Pods werden neu gestartet

1.5: Node in Maintenance Mode versetzen

  • Drainen Sie die Controlplane Node:
kubectl drain controlplane-0 --ignore-daemonsets

1.6: kubelet und kubectl upgraden

  • Aktualisieren Sie kubelet und kubectl auf die neue Version:
apt-get install --allow-change-held-packages  -y kubelet=<VERSION> kubectl=<VERSION>
  • Starten Sie kubelet neu:
systemctl daemon-reload
systemctl restart kubelet

1.7: Node wieder aktivieren

  • Uncordon Sie die Controlplane Node:
kubectl uncordon controlplane-0

1.8: Status prüfen

kubectl get nodes
kubectl get pods -n kube-system

👉 Beobachtung: Controlplane Node ist wieder Ready


Aufgabe 2 - Worker Nodes upgraden

Führen Sie die folgenden Schritte für jede Worker Node durch.


2.1: Kubernetes Repository anpassen

  • Öffnen Sie die /etc/apt/sources.list.d/kubernetes.list Datei:
cat /etc/apt/sources.list.d/kubernetes.list
  • Aktualisiere Sie die Version in der URL von 1.34 zu 1.35:

2.2: kubeadm upgraden

  • Aktualisieren Sie kubeadm auf die neue Version:
apt-get update
apt-get install --allow-change-held-packages -y kubeadm=<VERSION>

2.3: Node upgraden

  • Führen Sie das Upgrade durch:
kubeadm upgrade node

2.4: Node drainen

  • Loggen Sie sich aus der Worker Node aus
  • Drainen Sie die Worker Node:
kubectl drain <worker-node-name> --ignore-daemonsets

2.5: kubelet upgraden

  • Loggen Sie sich auf die Worker Node ein
  • Aktualisieren Sie kubelet auf die neue Version:
apt-get install -y kubelet=<VERSION>
systemctl daemon-reload
systemctl restart kubelet

2.6: Node wieder aktivieren

  • Loggen Sie sich wieder aus der Worker Node aus
  • Uncordon Sie die Worker Node:
kubectl uncordon <worker-node-name>

2.7: Status prüfen

  • Prüfen Sie den Status der Nodes:
kubectl get nodes

👉 Beobachtung: Node ist wieder Ready


Aufgabe 3 - Cluster überprüfen

Nachdem alle Nodes aktualisiert wurden, überprüfen Sie den Zustand des Clusters:

kubectl get nodes
kubectl get pods -A

👉 Beobachtung:

  • Alle Nodes haben die neue Version
  • Alle Pods laufen stabil