Upgrade von verwalteten Knoten auf eine neuere Kubernetes-Version durch Ersetzen des vorhandenen selbstverwalteten Knotens durchführen

Erfahren Sie, wie Sie ein Upgrade der Kubernetes-Version durchführen, die auf einem selbstverwalteten Knoten in einem erweiterten Cluster ausgeführt wird, das mit der Kubernetes-Engine erstellt wurde.

Hinweis

Dieser Abschnitt gilt nur für selbstverwaltete Knoten. Informationen zum Upgrade verwalteter Knoten finden Sie unter Verwaltete Knoten auf eine neuere Kubernetes-Version upgraden.

Sie können die Version von Kubernetes, die auf einem selbstverwalteten Knoten ausgeführt wird, upgraden, indem Sie den ursprünglichen selbstverwalteten Knoten durch einen neuen selbstverwalteten Knoten ersetzen, auf dem die neuere Kubernetes-Version ausgeführt wird. Nachdem Sie den ursprünglichen selbstverwalteten Knoten entleert haben, um das Starten neuer Pods zu verhindern und vorhandene Pods zu löschen, können Sie die Compute-Instanz beenden, die den ursprünglichen selbstverwalteten Knoten hostet.

Beachten Sie, dass Sie beim Erstellen des neuen selbstverwalteten Knotens ein Image angeben müssen, das eine Kubernetes-Version enthält, die der in der Kubernetes-Dokumentation beschriebenen Support-Policy für Kubernetes-Versionsabweichungen entspricht. Die Kubernetes-Engine prüft nicht, ob die Kubernetes-Version in dem Image, das Sie für den neuen selbstverwalteten Knoten angeben, mit der Kubernetes-Version kompatibel ist, die auf den Control-Plane-Knoten des Clusters ausgeführt wird. Siehe Clusteranforderungen.

So führen Sie ein Upgrade der auf einem selbstverwalteten Knoten ausgeführten Kubernetes-Version durch, indem Sie den ursprünglichen selbstverwalteten Knoten durch einen neuen selbstverwalteten Knoten ersetzen:

  1. Erstellen Sie eine neue Compute-Instanz, um den neuen selbstverwalteten Knoten zu hosten:
    1. Öffnen Sie das Navigationsmenü , und wählen Sie Compute aus. Wählen Sie unter Compute die Option Instanzen aus.
    2. Befolgen Sie die Anweisungen in der Compute-Servicedokumentation, um eine neue Compute-Instanz zu erstellen. Beachten Sie, dass geeignete Policys vorhanden sein müssen, damit die neue Compute-Instanz dem erweiterten Cluster beitreten kann. Siehe Dynamische Gruppe und Policy für selbstverwaltete Knoten erstellen.
    3. Klicken Sie im Abschnitt Image und Ausprägung auf Image ändern.
    4. Klicken Sie auf Meine Images, wählen Sie die Option Image-OCID aus, und geben Sie dann die OCID des OKE-Images Oracle Linux 7 (OL7) oder Oracle Linux 8 (OL8) ein, das die neuere Kubernetes-Version ausführt. Siehe Imageanforderungen.
    5. Klicken Sie auf Erweiterte Optionen anzeigen, und wählen Sie auf der Registerkarte Management die Option Cloud-init-Skript einfügen aus.
    6. Kopieren Sie das cloud-init-Skript mit dem privaten Kubernetes-API-Endpunkt und dem base64-codierten CA-Zertifikat, und fügen Sie es in das Feld Cloud-init-Skript ein. Siehe Cloud-init-Skripte für selbstverwaltete Knoten erstellen.
    7. Klicken Sie auf Erstellen, um die Compute-Instanz zum Hosten des selbstverwalteten Knotens zu erstellen.

    Wenn die Compute-Instanz erstellt wird, wird sie als selbstverwalteter Knoten mit dem angegebenen Kubernetes-API-Endpunkt zum Cluster hinzugefügt.

  2. Prüfen Sie, ob der selbstverwaltete Knoten zum Kubernetes-Cluster hinzugefügt wurde, und bestätigen Sie den Bereitschaftsstatus des Knotens, indem Sie Folgendes eingeben:
    kubectl get nodes

    Beispiel:

    kubectl get nodes
    
    NAME           STATUS   ROLES    AGE   VERSION
    10.0.103.170   Ready    <none>   40m   v1.25.4
  3. Bestätigen Sie, dass dem Knoten Labels hinzugefügt und wie erwartet festgelegt wurden, indem Sie Folgendes eingeben:
    kubectl get node <node-name> -o json | jq '.metadata.labels'

    Beispiel

    kubectl get node 10.0.103.170 -o json | jq '.metadata.labels'
    
    {
    ...
    "displayName": "oke-self-managed-node",
    "oci.oraclecloud.com/node.info.byon": "true",
    ...
    }
  4. Wenn dem ursprünglichen selbstverwalteten Knoten Labels zugeordnet sind und diese Labels von Selektoren verwendet werden (z.B. um die Knoten zu bestimmen, auf denen Pods ausgeführt werden sollen), dann verwenden Sie den Befehl kubectl label nodes, um dieselben Labels an den neuen selbstverwalteten Knoten anzuhängen. Siehe Pods zu Knoten zuweisen in der Kubernetes-Dokumentation.
  5. Verhindern Sie, dass neue Pods gestartet werden, und löschen Sie vorhandene Pods auf dem ursprünglichen selbstverwalteten Knoten, indem Sie Folgendes eingeben:

    kubectl drain <node_name>

    Weitere Informationen:

    Empfohlen: Nutzen Sie gegebenenfalls die zulässige Höchstanzahl von Podunterbrechungen (Pod Disruption Budget, PDB) für Ihre Anwendung, um sicherzustellen, dass eine ausreichende Anzahl von Replikatpods während des Drain-Vorgangs ausgeführt wird.

  6. Wenn Sie den ursprünglichen selbstverwalteten Knoten entfernt haben und Pods auf dem neuen selbstverwalteten Knoten ausgeführt werden, beenden Sie die Compute-Instanz, die den ursprünglichen selbstverwalteten Knoten hostet. Siehe Instanzen beenden.