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.listDatei:
cat /etc/apt/sources.list.d/kubernetes.list
- Aktualisiere Sie die Version in der URL von
1.34zu1.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.listDatei:
cat /etc/apt/sources.list.d/kubernetes.list
- Aktualisiere Sie die Version in der URL von
1.34zu1.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