<img src="https://secure.leadforensics.com/807076.png" style="display:none;">
Zu Content springen
Deutsch
  • Es gibt keine Vorschläge, da das Suchfeld leer ist.

How to: Kubernetes Service Wartung

Wir zeigen Ihnen, wie Sie die Verantwortlichkeiten im Xelon Kubernetes Service verstehen und Kubernetes- sowie Talos-Upgrades sicher über die Xelon-HQ-Plattform oder manuell mit talosctl durchführen können.

Verantwortungsmatrix

XKS Responsiblity Matrix

Der Xelon Kubernetes Service (XKS) folgt einem Modell geteilter Verantwortung. Die Verantwortlichkeiten sind auf drei Ebenen verteilt: die Workload des Kunden, der Xelon Kubernetes Service selbst und die zugrunde liegende Xelon-Infrastruktur.

Ihre Workload – von Ihnen verwaltet

Alles, was Sie im Cluster bereitstellen, unterliegt Ihrer Kontrolle und Verantwortung. Dazu gehören Anwendungen, persistente Volumes und deren Backups sowie Services und Gateway-Objekte. Wie diese Ressourcen betrieben, aktualisiert und gesichert werden, hängt vollständig von Ihnen ab. Wir stellen die Plattformfunktionen bereit (z. B. Storage-Klassen und Load-Balancing), verwalten, überwachen oder sichern Ihre Anwendungen jedoch nicht.

Xelon Kubernetes Service – von Xelon verwaltet

Xelon betreibt und wartet die Kubernetes-Plattform selbst. Dazu gehören die Komponenten innerhalb des Clusters – der Cloud Controller Manager, die Container Storage Interface und die Container Network Interface – sowie die für jeden Cluster bereitgestellten HQ-Ressourcen: Netzwerke, Gateways und Load-Balancer, die Control Plane und die Worker-Knoten.

Cluster- und Node-Upgrades werden von Xelon als automatisierter Prozess bereitgestellt: Xelon bereitet die neuen Versionen vor, testet sie und liefert sie aus; das Upgrade selbst läuft vollständig automatisiert. Sie entscheiden jedoch, wann ein Upgrade stattfindet: Es muss von Ihnen ausgelöst werden, damit es an Ihre Wartungsfenster und Workload-Anforderungen angepasst werden kann. Sicherheitspatches und die Wartung der zugrunde liegenden Plattformkomponenten bleiben in unserer Verantwortung und werden im Voraus angekündigt, wenn Auswirkungen auf Ihre Workload zu erwarten sind.

Xelon-Infrastruktur – von Xelon verwaltet

XKS läuft auf der Xelon-Infrastruktur: der Cloud-Plattform (Hypervisor), den Speichersystemen und der Internetanbindung. Diese Ebene wird von Xelon unabhängig vom Kubernetes-Service betrieben. Wartungen der Infrastrukturebene werden getrennt von XKS-Wartungen geplant, durchgeführt und angekündigt und folgen dem allgemeinen Infrastruktur-Wartungs- und Benachrichtigungsprozess von Xelon.

Was müssen Sie aktualisieren?

Cluster- und Node-Upgrades werden von Xelon vorbereitet und bereitgestellt, starten jedoch nicht automatisch – Sie entscheiden, wann. Dadurch können Sie Upgrades flexibel an Ihre Wartungsfenster und Workloads anpassen.

Ein Upgrade zu starten ist einfach: Führen Sie es mit einem einzigen Klick direkt in HQ aus – vollständig automatisiert.

Sie möchten selbst Hand anlegen? Manuelle Upgrades sind jederzeit ebenfalls möglich.

Kubernetes-Version

Wenn Sie Kubernetes auf eine neue Patch-Version aktualisieren, sind keine besonderen Vorkehrungen erforderlich. Es handelt sich um ein Upgrade mit geringem Risiko – führen Sie es einfach durch. Während dieser Upgrades ändern sich die APIs nicht. Dennoch empfehlen wir, die Ankündigung zu lesen und Ihre Workload nach der Änderung zu testen.

Vorbereitungen

Wenn Sie Kubernetes auf eine neue Minor-Version aktualisieren, sollten Sie zunächst einige Punkte beachten:

  1. Lernen Sie anhand des Changelogs die Neuerungen und möglichen Auswirkungen auf Ihre Workload kennen. Beispiel: https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.31.md

  2. Prüfen Sie anhand der Dokumentation Ihrer Anbieter, ob Ihre Workload mit der neuen Kubernetes-Version kompatibel ist.

Vor dem Upgrade

Prüfen Sie, ob Ihre Workload fehlerfrei läuft – entweder über Ihre Monitoring-Lösung oder mit einigen einfachen kubectl-Befehlen:

# Deployments & StatefulSets
kubectl get deploy,sts -A --no-headers | awk '{split($3,a,"/"); if(a[1]!=a[2]) print}'
# DaemonSets
kubectl get ds -A --no-headers | awk '$3!=$5 {print}'

Diese Befehle prüfen, ob die Anzahl der gewünschten Pods mit der Anzahl der laufenden Pods übereinstimmt.

Prüfen Sie ausserdem, ob laufende Events vorhanden sind, die nicht den Status „Normal“ haben:

kubectl events -A | grep -v Normal
Das Upgrade (HQ)

Navigieren Sie in HQ zu Ihrem Cluster und klicken Sie neben Ihrer Kubernetes-Version auf die Upgrade-Schaltfläche. Wählen Sie die gewünschte Kubernetes-Version aus und klicken Sie auf Upgrade.

XelonKubernetesService_UpgradeK8s

Dieses Upgrade führt zu keinen Neustarts der Nodes – nur die Kubernetes-API und zugehörige Komponenten werden neu gestartet.

Das Upgrade (manuell)

Wenn Sie das Upgrade manuell durchführen möchten, können Sie dazu talosctl verwenden.

Für das Upgrade eines einzelnen Nodes benötigen Sie dessen interne IP-Adresse. Sie finden sie mit folgendem Befehl:

kubectl get nodes -o wide

Wir empfehlen, vor dem eigentlichen Upgrade zunächst einen Probelauf durchzuführen:

# Probelauf
talosctl --nodes 100.110.255.11 upgrade-k8s --to 1.32.13 --dry-run
# Tatsächliches Upgrade
talosctl --nodes 100.110.255.11 upgrade-k8s --to 1.32.13

Das Upgrade muss nur auf einem einzigen Control-Plane-Node ausgeführt werden. Dieser Node koordiniert anschliessend das Upgrade im gesamten Cluster.

Nach dem Upgrade

Um sicherzustellen, dass alles erfolgreich war, empfehlen wir, dieselben Prüfungen wie vor dem Upgrade zu wiederholen. Testen Sie Ihre Workload ausserdem manuell, um zu bestätigen, dass alles weiterhin wie erwartet funktioniert.

Talos (Node-Betriebssystem)

Auch das Betriebssystem Ihrer Cluster-Nodes – Talos Linux – erhält regelmässig Updates. Wie Kubernetes-Upgrades werden Talos-Upgrades von Xelon vorbereitet und bereitgestellt; Sie entscheiden jedoch, wann sie ausgeführt werden.

Wenn Sie Talos auf eine neue Patch-Version aktualisieren, sind keine besonderen Vorkehrungen erforderlich – führen Sie das Upgrade einfach durch.

Bitte beachten Sie, dass ein Upgrade den Node neu startet und dadurch die Workload auf diesem Node ebenfalls neu gestartet wird.

Vorbereitungen

Wenn Sie Talos auf eine neue Minor-Version aktualisieren, sollten Sie zunächst einige Punkte beachten:

  1. Lesen Sie die Release Notes, um Neuerungen und mögliche Auswirkungen auf Ihren Cluster zu erfahren. Beispiel: https://github.com/siderolabs/talos/releases

  2. Prüfen Sie anhand der Talos-Support-Matrix, ob Ihre aktuelle Kubernetes-Version mit der neuen Talos-Version kompatibel ist: https://www.talos.dev/latest/introduction/support-matrix/

 

Gut zu wissen: Wenn Sie das Upgrade über HQ durchführen, wird diese Kompatibilitätsprüfung für Sie erledigt. HQ prüft automatisch, ob Ihre Kubernetes-Version mit der neuen Talos-Version kompatibel ist. Die manuelle Prüfung ist nur erforderlich, wenn Sie das Upgrade über talosctl durchführen.

Vor dem Upgrade

Im Gegensatz zu einem Kubernetes-Upgrade startet ein Talos-Upgrade jeden Node neu. Die Nodes werden nacheinander aktualisiert; vor dem Neustart wird die Workload von einem Node verschoben. Um Ausfallzeiten zu vermeiden, stellen Sie sicher, dass Ihre Workloads dies tolerieren:

  • Betreiben Sie Ihre Anwendungen mit mehreren Replikas, verteilt über mehrere Nodes.

  • Konfigurieren Sie geeignete PodDisruptionBudgets, damit kritische Workloads nicht vollständig auf einmal evakuiert werden.

  • Weisen Sie Ihren kritischen Workloads Pod-Prioritätsklassen zu. Dadurch werden sie beim Leeren eines Nodes zuerst neu eingeplant. Bei vorübergehend knappem Speicherplatz während des Upgrades werden weniger wichtige Pods zu ihren Gunsten verdrängt.

Prüfen Sie anschliessend mit denselben Befehlen wie vor einem Kubernetes-Upgrade, ob Ihre Workload fehlerfrei läuft.

Das Upgrade (HQ)

Navigieren Sie in HQ zu Ihrem Cluster und klicken Sie neben Ihrer Talos-Version auf die Upgrade-Schaltfläche. Wählen Sie die gewünschte Talos-Version aus und klicken Sie auf Upgrade.

Die Nodes werden nacheinander aktualisiert und neu gestartet, sodass der Cluster insgesamt während des gesamten Upgrades verfügbar bleibt.

Das Upgrade (manuell)

Wenn Sie das Upgrade manuell durchführen möchten, können Sie dazu talosctl verwenden. Anders als bei einem Kubernetes-Upgrade muss das Talos-Upgrade pro Node ausgeführt werden. Aktualisieren Sie jeweils einen Node und warten Sie, bis er wieder fehlerfrei läuft, bevor Sie mit dem nächsten fortfahren. Wir empfehlen, mit den Control-Plane-Nodes zu beginnen und anschliessend die Worker-Nodes zu aktualisieren.

  1. Ihre Nodes verwenden ein Talos-Image, das aus einem bestimmten Schema erstellt wurde (dieses definiert die enthaltenen Systemerweiterungen). Um dieselbe Konfiguration nach dem Upgrade beizubehalten, prüfen Sie zunächst die Schema-ID Ihrer Nodes:
    kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.metadata.annotations.extensions\.talos\.dev/schematic}{"\n"}{end}'

  2. Verwenden Sie die Schema-ID aus Schritt 1, um die URL des Installer-Images zu erstellen, und führen Sie das Upgrade für den Node aus:
    talosctl upgrade --nodes 100.110.255.11 --image factory.talos.dev/installer/a28d86375cf9debe952efbcbe8e2886cf0a174b1f4dd733512600a40334977d7:v1.9.5

    Das Image folgt dem Muster factory.talos.dev/installer/<schematic-id>:<talos-version>. Ersetzen Sie die Schema-ID durch die ID Ihrer Nodes und den Versions-Tag durch Ihre gewünschte Talos-Version.

Tipps:

  • Sie können den Upgrade-Prozess auch live im Talos-Dashboard verfolgen. Dort werden Node-Status, Logs und Ressourcennutzung in einer Ansicht angezeigt:
  • Wenn Sie Ihrem Worker-Pool vorübergehend einen zusätzlichen Node hinzufügen, können Sie sicherstellen, dass die gesamte Workload neu eingeplant werden kann und keine Ressourcenengpässe den Prozess blockieren.
    talosctl --nodes 100.110.255.11 dashboard
Nach dem Upgrade

Um sicherzustellen, dass alles erfolgreich war, empfehlen wir, dieselben Prüfungen wie vor dem Upgrade zu wiederholen. Testen Sie Ihre Workload ausserdem manuell, um zu bestätigen, dass alles weiterhin wie erwartet funktioniert.

XKS-Komponenten im Cluster

Die Komponenten innerhalb des Clusters (Cloud Controller Manager, Container Storage Interface und Container Network Interface) werden automatisch von Xelon aktualisiert. Bei jedem Upgrade der Kubernetes-Version werden verfügbare Komponenten-Updates als Teil des Prozesses angewendet – Ihrerseits ist keine Aktion erforderlich.

Benötigen Sie Hilfe?

Wenn Sie unsicher sind oder Unterstützung benötigen, können Sie sich gerne unter https://support.xelon.ch an uns wenden – wir helfen Ihnen gerne.