Upgrade verwalteter Knoten auf Kubernetes-Version 1.35 (oder höher)
Erfahren Sie, wie Sie verwaltete Knoten upgraden, die derzeit ein OKE-OL7-Image, ein OL7-Plattformimage oder ein benutzerdefiniertes Image basierend auf einem OL7-Image verwenden, um Kubernetes-Version 1.35 (oder höher) und OL8 mit Kubernetes Engine (OKE) auszuführen.
Dieser Abschnitt gilt nur für verwaltete Knoten. Informationen zum Upgraden von selbstverwalteten Knoten finden Sie unter Upgrade von selbstverwalteten Knoten auf eine neuere Kubernetes-Version durch Ersetzen eines vorhandenen selbstverwalteten Knotens.
Ab Kubernetes-Version 1.35 benötigt Kubernetes die cgroups v2 für die Verwaltung von Containerressourcen.
Control Groups (cgroups) ist ein Linux-Kernelfeature, das einen Mechanismus zum Verwalten und Steuern der Ressourcenzuweisung für Prozesse oder Prozessgruppen bietet. Gruppen der Kontrollgruppen Version 2 (cgroups v2) stellen eine einzelne Kontrollgruppenhierarchie bereit, für die alle Ressourcencontroller gemountet sind. In dieser Hierarchie können Sie die Ressourcennutzung über verschiedene Resource Controller hinweg koordinieren.
Oracle Linux 7 (OL7) unterstützt die cgroups v1, unterstützt jedoch die cgroups v2 nicht. Oracle Linux 8 (OL8) und höhere Versionen unterstützen sowohl die cgroups v1 als auch die cgroups v2, aber cgroups v2 ist nicht immer standardmäßig in OL8 aktiviert.
Zusammenfassend lässt sich sagen, dass Kubernetes-Version 1.35 daher OL8 (oder höher) erfordert, wobei cgroups v2 aktiviert ist.
Cgroups v2 ist standardmäßig in OKE-OL8-Images aktiviert, die eine Build-Nummer von 1367 oder höher haben. In OKE-OL8-Images, die eine Build-Nummer kleiner als 1367 (und in OL8-Plattformimages) aufweisen, ist cgroups v1 standardmäßig aktiviert.
Für Worker-Knoten auf Clustern, auf denen Kubernetes-Version 1.35 (und höher) ausgeführt wird, unterstützt Kubernetes Engine die folgenden Images:
- OKE-OL8-Images und benutzerdefinierte Images basierend auf OKE-OL8-Images, die eine Build-Nummer von 1367 oder höher haben.
- OKE-OL8-Images und benutzerdefinierte Images basierend auf OKE-OL8-Images, die eine Build-Nummer kleiner als 1367 haben, jedoch nur, wenn Sie die Cgroups v2 aktivieren (siehe Cgroups v2 auf OL8-Worker-Knoten mit benutzerdefinierten Images aktivieren).
- Benutzerdefinierte Images basierend auf OL8-Plattformimages, jedoch nur, wenn Sie die Cgroups v2 aktivieren (siehe Cgroups v2 auf OL8-Worker-Knoten mit benutzerdefinierten Images aktivieren).
Beachten Sie, dass die folgenden Images in Kubernetes-Version 1.35 nicht unterstützt werden:
- OKE OL7-Images werden nicht unterstützt.
- Plattformimages (sowohl OL7-Plattformimages als auch OL8-Plattformimages) werden nicht unterstützt.
- Benutzerdefinierte Images basierend auf OKE OL7-Images werden nicht unterstützt.
- Benutzerdefinierte Images, die auf OL7-Plattformimages basieren, werden nicht unterstützt.
Beachten Sie beim Upgrade verwalteter Knoten, die derzeit ein OL8-Image auf Kubernetes-Version 1.35 (und höher) verwenden, Folgendes:
- Sie können verwaltete Knoten, die derzeit ein OKE-OL8-Image (oder ein benutzerdefiniertes Image basierend auf einem OKE-OL8-Image) mit einer Build-Nummer unter 1367 verwenden, upgraden, indem Sie ein In-Place-Upgrade durchführen und ein OKE-OL8-Image mit einer Build-Nummer größer/gleich 1367 angeben.
- Sie können verwaltete Knoten upgraden, die derzeit ein OL8-Plattformimage verwenden, indem Sie ein In-Place-Upgrade durchführen und ein OKE-OL8-Image mit einer Build-Nummer von 1367 oder höher angeben.
- Sie können In-Place-Upgrades von verwalteten Knoten durchführen, die derzeit ein OL8-Image verwenden, unabhängig davon, ob für die Linux-Kernels von Compute-Instanzen, auf denen die Knoten gehostet werden, bereits Cgroups v2 aktiviert sind.
- Anweisungen zum Durchführen von In-Place-Upgrades finden Sie unter Verwaltete Knoten auf eine neuere Kubernetes-Version upgraden.
Um verwaltete Knoten, die derzeit ein OKE-OL7-Image, ein OL7-Plattformimage oder ein benutzerdefiniertes Image basierend auf einem OL7-Image verwenden, upzugraden, um Kubernetes-Version 1.35 (oder höher) auszuführen, führen Sie ein Out-of-Place-Upgrade aus, um den vorhandenen Knotenpool durch einen neuen Knotenpool zu ersetzen:
-
Identifizieren Sie vorhandene Knotenpools, die OL7 verwenden, mit der Konsole oder der CLI wie folgt:
-
Konsole verwenden:
- Wählen Sie auf der Listenseite Cluster den Namen des Clusters mit den Knotenpools aus, die Sie anzeigen möchten. Wenn Sie Hilfe beim Suchen der Listenseite oder des Clusters benötigen, finden Sie weitere Informationen unter Cluster auflisten.
- Wählen Sie die Registerkarte Knotenpools.
- Verwenden Sie die Spalte Imagename, um Knotenpools zu identifizieren, die
Oracle-Linux-7.9.x-Images verwenden.
-
CLI verwenden: Identifizieren Sie vorhandene Knotenpools, die OL7 verwenden, indem Sie einen Befehl wie den folgenden eingeben:
oci ce node-pool list --cluster-id <cluster-ocid> --compartment-id <compartment-ocid> --query 'data[*].{name:"name", image:"node-source"."image-id"}'
-
-
Erstellen Sie einen Ersatzknotenpool, der ein OL8-Image verwendet, mit der Konsole oder der CLI wie folgt:
-
Konsole verwenden:
- Wählen Sie in der Registerkarte Knotenpools die Option Knotenpool hinzufügen aus, und geben Sie Details für den neuen Knotenpool ein.
- Wählen Sie ein OKE-Worker-Knotenimage basierend auf einem
Oracle Linux 8.x-Image aus. - Konfigurieren Sie den neuen Knotenpool mit derselben Ausprägung, Größe und Platzierung wie der Knotenpool OL7.
- Wählen Sie Erstellen.
-
CLI verwenden: Erstellen Sie einen Ersatzknotenpool, der ein OL8-Abbild verwendet, indem Sie einen Befehl wie den folgenden eingeben:
oci ce node-pool create --cluster-id <cluster-ocid> --compartment-id <compartment-ocid> --name "nodepool-ol8-workers" --node-shape "VM.Standard.E4.Flex" --kubernetes-version "v1.35.0" --node-image-id <ol8-image-ocid> --size 3 --placement-configs '[{"availabilityDomain":"AD-1","subnetId":"<subnet-ocid>"}]'
-
-
Cordon der OL7-Knoten:
-
Rufen Sie die Namen der OL7-Knoten ab, indem Sie Folgendes eingeben:
kubectl get nodes -l node.kubernetes.io/os=ol7 -
Cordonieren Sie jeden Knoten, indem Sie Folgendes eingeben:
kubectl cordon <node-name>
-
-
Ziehen Sie die OL7-Knoten, um Workloads ordnungsgemäß zu migrieren:
- Entwässern Sie jeden OL7-Knoten, indem Sie Folgendes eingeben:
kubectl drain <node-name> --ignore-daemonsets --delete-emptydir-data --force - Prüfen Sie, ob Workloads auf den neuen Knoten neu geplant wurden, indem Sie Folgendes eingeben:
kubectl get pods -A -o wide | grep <node-name>
- Entwässern Sie jeden OL7-Knoten, indem Sie Folgendes eingeben:
-
Löschen Sie den Knotenpool OL7 wie folgt mit der Konsole oder der CLI:
-
Konsole verwenden:
- Wählen Sie auf der Registerkarte Knotenpools im Menü Aktionen (drei Punkte) neben dem Knotenpool OL7 die Option Knotenpool löschen aus.
- Klicken Sie auf Löschen.
- Bestätigen Sie, dass Sie den Knotenpool löschen möchten, und wählen Sie Löschen aus.
-
CLI verwenden: Löschen Sie den Knotenpool OL7:
oci ce node-pool delete --node-pool-id <ol7-nodepool-ocid>
-
-
Führen Sie ein Upgrade des Clusters aus (Beispiel: auf Kubernetes-Version 1.35):
oci ce cluster update --cluster-id <cluster-ocid> --kubernetes-version "v1.35.0"
Weitere Informationen finden Sie unter Out-of-Place-Kubernetes-Upgrade von verwalteten Knoten durch Ersetzen eines vorhandenen Knotenpools mit einem neuen Knotenpool durchsetzen.