Cluster, Workerknoten und Clusterkomponenten aktualisieren

In den folgenden Abschnitten finden Sie Schritte, um Ihre Cluster-Master-und Workerknoten auf dem neuesten Stand zu halten.

Master aktualisieren

Woran erkenne ich, wann ich den Master aktualisieren muss?
Sie werden in der Konsole, in Ankündigungen und in der Befehlszeilenschnittstelle benachrichtigt, wenn Aktualisierungen verfügbar sind. Sie können auch in regelmäßigen Abständen die Seite Unterstützte Versionen überprüfen.
Um wie viele Versionen darf der Master hinter der neuesten Version zurückliegen?
Sie können den API-Server nur auf die nächsthöhere Version aktualisieren (n+1).
Können meine Worker-Knoten eine neuere Version als der Master ausführen?
Auf Ihren Workerknoten kann keine höhere major.minor Kubernetes-Version als auf dem Master ausgeführt werden. Darüber hinaus können Ihre Workerknoten nur eine Version hinter der Masterversion (n-1) liegen. Zuerst aktualisieren Sie Ihren Master auf die neueste Kubernetes-Version. Anschließend aktualisieren Sie die Workerknoten in Ihrem Cluster.

Workerknoten können eine spätere Patchversion als der Master ausführen, zum Beispiel Patchversionen, die für Workerknoten aufgrund von Sicherheitsaktualisierungen spezifisch sind.

Wie werden Patch-Updates installiert?
Patchaktualisierungen für den Master werden automatisch über mehrere Tage hinweg angewendet, sodass eine Master-Patch-Version möglicherweise als verfügbar angezeigt wird, bevor sie auf Ihren Master angewendet wird. Die Aktualisierungsautomatisierung überspringt auch Cluster, die sich in einem nicht einwandfreien Zustand befinden oder in denen derzeit Operationen ausgeführt werden. Es kann vorkommen, dass IBM gelegentlich die automatischen Aktualisierungen für ein bestimmtes Master-Fixpack inaktiviert, zum Beispiel ein Patch, das nur benötigt wird, wenn ein Master von einer Nebenversion auf eine andere Version aktualisiert wird. In jedem dieser Fälle können Sie die Versionsinformationen unter Red Hat OpenShift on IBM Cloud auf mögliche Auswirkungen überprüfen und den Befehlibmcloud oc cluster master update “ selbst sicher ausführen, ohne abzuwarten, bis die automatische Aktualisierung wirksam wird.

Im Gegensatz zum Master müssen Sie die Worker für jede Patchversion aktualisieren.

Was passiert während des Master-Updates?
Ihr Master ist mit drei Replikat-Master-Pods hoch verfügbar. Die Master-Pods haben eine rollierende Aktualisierung, während der immer nur ein Pod nicht verfügbar ist. Zwei Instanzen sind aktiv, sodass Sie während der Aktualisierung auf den Cluster zugreifen und ihn ändern können. Ihre Workerknoten, Apps und Ressourcen werden weiterhin ausgeführt.
Kann ich das Update rückgängig machen?
Nein, nachdem eine Aktualisierung durchgeführt wurde, können Sie den Cluster nicht auf eine frühere Version zurücksetzen. Achten Sie darauf, zunächst einen Testcluster zu verwenden und die Anweisungen für den Umgang mit potenziellen Problemen zu befolgen, bevor Sie Ihren Produktionsmaster aktualisieren.
Wie kann ich den Master aktualisieren?
Das folgende Diagramm zeigt den Prozess, den Sie zum Aktualisieren des Masters ausführen können.

Ablaufdiagramm zum Master-Update-Prozess
Aktualisierung Kubernetes Ablaufdiagramm zum Master-Prozess

Schritte zum Aktualisieren des Cluster-Masters

Bevor Sie beginnen, stellen Sie sicher, dass Sie über die IAM-Plattformzugriffsrolle „Operator“ oder „Administrator“ verfügen.

Aktualisierungen des Clustermasters werden blockiert, wenn eine Zertifikatsrotation der Zertifizierungsstelle (CA) im Gange ist. Warten Sie den Abschluss einer Rotation ab, bevor Sie den Cluster-Master aktualisieren.

So aktualisieren Sie die übergeordnete oder untergeordnete Red Hat OpenShift-Master-Version:

  1. Überprüfen Sie die Red Hat OpenShift on IBM Cloud-Versionsinformationen und nehmen Sie alle Aktualisierungen vor, die mit _Vor Master aktualisieren_markiert sind.

  2. Lesen Sie alle hilfreichen Hinweise unter Kubernetes durch, beispielsweise Hinweise auf veraltete Funktionen.

  3. Überprüfen Sie die in Ihrem Cluster installierten Add-ons und Plug-ins hinsichtlich aller möglichen Auswirkungen, die auf die Aktualisierung der Clusterversion zurückzuführen sein können.

    • Add-ons überprüfen

      1. Listen Sie die Add-ons im Cluster auf.
        ibmcloud oc cluster addon ls --cluster CLUSTER
        
      2. Überprüfen Sie die unterstützte Red Hat OpenShift-Version für jedes installierte Add-on.
        ibmcloud oc addon-versions
        
      3. Wenn das Add-on aktualisiert werden muss, damit es in der Red Hat OpenShift-Version ausgeführt werden kann, auf die der Cluster aktualisiert werden soll, aktualisieren Sie das Add-on.
    • Plug-ins überprüfen

      1. Suchen Sie im Katalog „ Helm “ nach den Plug-ins, die Sie in Ihrem Cluster installiert haben.
      2. Erweitern Sie im seitlichen Menü den Abschnitt QUELLEN & TAR-DATEI.
      3. Laden Sie den Quellcode herunter und öffnen Sie ihn.
      4. Überprüfen Sie die Dateien README.md oder RELEASENOTES.md auf unterstützte Versionen.
      5. Wenn das Plug-in aktualisiert werden muss, damit es in der Red Hat OpenShift-Version ausgeführt werden kann, auf die Ihr Cluster aktualisiert werden soll, aktualisieren Sie das Plug-in, indem Sie die entsprechenden Anweisungen befolgen.
  4. Aktualisieren Sie Ihren API-Server und die zugehörigen Master-Komponenten mithilfe der „ IBM Cloud “-Konsole oder durch Ausführen des CLI -Befehlsibmcloud oc cluster master update “.

  5. Warten Sie ein paar Minuten und vergewissern Sie sich dann, dass die Aktualisierung abgeschlossen ist. Überprüfen Sie die Version des API-Servers im Dashboard für IBM Cloud-Cluster oder führen Sie den Befehl ibmcloud oc cluster ls aus.

  6. Installieren Sie die Version der oc cli, die mit der Version des API-Servers übereinstimmt, die auf dem Master ausgeführt wird. Kubernetes oc-Client-Versionen, die zwei oder mehr Versionen von der Server-Version abweichen (n ± 2), werden nicht unterstützt.

Wenn das Master-Update abgeschlossen ist, können Sie je nach dem Typ des verwendeten Clusterinfrastrukturproviders Ihre Workerknoten aktualisieren.

Klassische Workerknoten aktualisieren

Sie sehen, dass für Ihre Workerknoten in einem Cluster in der klassischen Infrastruktur ein Update verfügbar ist. Was bedeutet das? Bei der Einrichtung von Sicherheitsupdates und -patches für den API-Server und anderen Komponenten des Masters müssen Sie darauf achten, dass Ihre Workerknoten synchronisiert bleiben. Sie können zwei Typen von Aktualisierung durchführen: Eine Aktualisierung nur der Patchversion oder eine Aktualisierung der Version (major.minor) mit der Patchversion.

  • Patch: Eine Patchaktualisierung eines Workerknotens umfasst Korrekturen (Fixes) für die Sicherheit. Sie können den klassischen Workerknoten mit dem Befehl ibmcloud oc worker reload oder update aktualisieren. Beachten Sie, dass mit dem Befehl update der Workerknoten auch auf dieselbe Version (major.minor) wie die Master- und neueste Patchversion aktualisiert wird, wenn auch ein Update für die Version (major.minor) verfügbar ist.
  • Hauptversion.Nebenversion: Eine Aktualisierung der Version (major.minor) stuft die Kubernetes-Version des Workerknotens auf dieselbe Version wie die des Masters hoch. Diese Art von Aktualisierung geht oft mit Änderungen an der Kubernetes-API oder anderen Verhaltensmustern einher, auf die Sie Ihren Cluster vorbereiten müssen. Denken Sie daran, dass Ihre Workerknoten nur eine Version hinter der Masterversion (n-1) liegen dürfen. Sie können den klassischen Workerknoten mit dem Befehl ibmcloud oc worker update auf dasselbe Patch aktualisieren.

Weitere Informationen finden Sie in Aktualisierungstypen.

Es empfiehlt sich, bei jeder Aktualisierung der Arbeitsknoten rotieren Sie Ihre CA-Zertifikate zu verwenden, da der längste Schritt der Zertifikatsrotation das Neuladen oder Ersetzen der Arbeitsknoten beinhaltet.

Was passiert mit meinen Apps während eines Updates?
Wenn Sie Apps als Teil einer Bereitstellung auf Workerknoten ausführen, die Sie aktualisieren, werden die Apps auf anderen Workerknoten im Cluster neu geplant. Diese Workerknoten können sich in einem anderen Worker-Pool befinden. Wenn Sie eigenständige Workerknoten haben, können Apps auch auf eigenständigen Workerknoten geplant werden. Um Ausfallzeiten für Ihre App zu vermeiden, müssen Sie sicherstellen, dass genügend Kapazität im Cluster vorhanden ist, um die Workload zu übernehmen.
Wie kann ich steuern, wie viele Worker-Knoten während eines Updates oder Reloads jeweils außer Betrieb gehen?
Wenn alle Workerknoten betriebsbereit sein müssen, sollten Sie in Betracht ziehen, die Größe des Worker-Pools zu ändern oder eigenständige Workerknoten hinzufügen, um weitere Workerknoten hinzuzufügen. Sie können die zusätzlichen Workerknoten entfernen, nachdem die Aktualisierung abgeschlossen ist.

Darüber hinaus können Sie eine Konfigurationsmap „ Kubernetes “ erstellen, in der die maximale Anzahl von Worker-Knoten festgelegt wird, die gleichzeitig nicht verfügbar sein dürfen, beispielsweise während eines Updates. Workerknoten werden durch eine entsprechende Bezeichnung identifiziert. Sie können von IBM bereitgestellte Bezeichnungen oder angepasste Bezeichnungen verwenden, die Sie dem Workerknoten hinzugefügt haben.

Die Kubernetes Config-Map-Regeln werden nur für die Aktualisierung von Worker-Knoten verwendet. Diese Regeln wirken sich nicht auf das erneute Laden von Workerknoten aus. Dies bedeutet, dass das erneute Laden sofort nach der Anforderung erfolgt.

Was passiert, wenn ich keine Konfigurationszuordnung definiere?
Wenn die Konfigurationszuordnung nicht definiert wurde, wird die Standardeinstellung verwendet. Standardmäßig können maximal 20 % aller Workerknoten in jedem Cluster während des Aktualisierungsprozesses nicht verfügbar sein.

Voraussetzungen

Lesen Sie die Informationen zu den vorausgesetzten Schritten, bevor Sie Ihre Workerknoten der klassischen Infrastruktur aktualisieren.

Die Aktualisierung von Workerknoten kann zu Ausfallzeiten bei Ihren Apps und Services führen. Von Ihrer Workerknotenmaschine wird ein neues Image erstellt und dabei werden Daten gelöscht, die nicht außerhalb des Pods gespeichert sind.

Klassische Workerknoten über die Befehlszeilenschnittstelle (CLI) mit einer Konfigurationszuordnung aktualisieren

Richten Sie eine Konfigurationszuordnung ein, um eine rollierende Aktualisierung Ihrer klassischen Arbeiterknoten durchzuführen.

  1. Führen Sie die vorausgesetzten Schritte aus.

  2. Listen Sie verfügbare Workerknoten auf und notieren Sie deren private IP-Adressen.

    ibmcloud oc worker ls --cluster CLUSTER
    
  3. Zeigen Sie die Bezeichnungen eines Workerknotens an. Die Bezeichnungen der Workerknoten finden Sie im Abschnitt Labels der CLI-Ausgabe. Jede Bezeichnung besteht aus einem Selektorschlüssel (NodeSelectorKey) und einem Selektorwert (NodeSelectorValue).

    oc describe node PRIVATE-WORKER-IP
    

    Beispielausgabe

    NAME:               10.184.58.3
    Roles:              <none>
    Labels:             arch=amd64
                    beta.kubernetes.io/arch=amd64
                    beta.kubernetes.io/os=linux
                    failure-domain.beta.kubernetes.io/region=us-south
                    failure-domain.beta.kubernetes.io/zone=dal12
                    ibm-cloud.kubernetes.io/encrypted-docker-data=true
                    ibm-cloud.kubernetes.io/iaas-provider=softlayer
                    ibm-cloud.kubernetes.io/machine-type=u3c.2x4.encrypted
                    kubernetes.io/hostname=10.123.45.3
                    privateVLAN=2299001
                    publicVLAN=2299012
    Annotations:        node.alpha.kubernetes.io/ttl=0
                    volumes.kubernetes.io/controller-managed-attach-detach=true
    CreationTimestamp:  Tue, 03 Apr 2022 15:26:17 -0400
    Taints:             <none>
    Unschedulable:      false
    
  4. Erstellen Sie eine Konfigurationszuordnung und definieren Sie die Nichtverfügbarkeitsregeln für Ihre Workerknoten. Das folgende Beispiel zeigt vier Prüfungen: zonecheck.json, regioncheck.json, defaultcheck.json und eine Prüfungsvorlage. Sie können diese Beispielprüfungen verwenden, um Regeln für Workerknoten in einer bestimmten Zone (zonecheck.json), Region (regioncheck.json) oder für alle Workerknoten zu definieren, die mit keiner der in der Konfigurationszuordnung (defaultcheck.json) definierten Prüfungen übereinstimmen. Mithilfe der Prüfvorlage können Sie eine eigene Prüfung erstellen. Für jede Prüfung müssen Sie zum Identifizieren eines Workerknotens eine der Workerknotenbezeichnungen auswählen, die Sie im vorherigen Schritt abgerufen haben.

    Für jede Prüfung können Sie nur einen Wert für NodeSelectorKey und NodeSelectorValue festlegen. Wenn Sie Regeln für mehrere Regionen, Zonen oder andere Workerknotenbezeichnungen festlegen möchten, müssen Sie eine neue Prüfung erstellen. In einer Konfigurationskarte können bis zu 15 Prüfungen definiert werden. Wenn Sie weitere Prüfungen hinzufügen, wird jeweils nur ein Workerknoten erneut geladen, bis alle angeforderten Worker aktualisiert wurden.

    Beispiel

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: ibm-cluster-update-configuration
      namespace: kube-system
    data:
      drain_timeout_seconds: "120"
      zonecheck.json: |
        {
          "MaxUnavailablePercentage": 30,
          "NodeSelectorKey": "failure-domain.beta.kubernetes.io/zone",
          "NodeSelectorValue": "dal13"
        }
      regioncheck.json: |
        {
          "MaxUnavailablePercentage": 20,
          "NodeSelectorKey": "failure-domain.beta.kubernetes.io/region",
          "NodeSelectorValue": "us-south"
        }
      defaultcheck.json: |
        {
          "MaxUnavailablePercentage": 20
        }
      <check_name>: |
        {
          "MaxUnavailablePercentage": <value_in_percentage>,
          "NodeSelectorKey": "<node_selector_key>",
          "NodeSelectorValue": "<node_selector_value>"
        }
    
    drain_timeout_seconds
    Optional: Die Zeitüberschreitung in Sekunden, die abgewartet werden soll, bis der Abfluss abgeschlossen ist. Durch das Entleeren eines Workerknotens werden alle vorhandenen Pods sicher vom Workerknoten entfernt und die Pods auf anderen Workerknoten im Cluster neu geplant. Zulässige Werte liegen zwischen 1 und 180. Der Standardwert ist 30.
    zonecheck.json und regioncheck.json
    Zwei Prüfungen, die eine Regel für eine Gruppe von Workerknoten definieren, die mit den angegebenen Merkmalen NodeSelectorKey und NodeSelectorValue identifiziert werden können. zonecheck.json identifiziert Workerknoten anhand ihrer Zonenbezeichnung und regioncheck.json verwendet die Bezeichnung der Region, die jedem Workerknoten während der Bereitstellung zugeordnet wird. Im vorliegenden Beispiel dürfen 30 % aller Workerknoten mit der Zonenbezeichnung dal13 und 20 % aller Workerknoten in us-south während der Aktualisierung nicht verfügbar sein.
    defaultcheck.json
    Wenn Sie keine Konfigurationszuordnung erstellen oder die Zuordnung nicht ordnungsgemäß konfiguriert ist, wird der Standardwert von Kubernetes angewendet. Standardmäßig können nur 20 % der Workerknoten im Cluster zu einem bestimmten Zeitpunkt nicht verfügbar sein. Sie können den Standardwert überschreiben, indem Sie die Standardprüfung zur Konfigurationszuordnung hinzufügen. Im vorliegenden Beispiel darf jeder Workerknoten, der nicht in den Prüfungen für Zone und Region (dal13 oder us-south) angegeben ist, während der Aktualisierung nicht verfügbar sein.
    MaxUnavailablePercentage
    Dies ist für einen angegebenen Bezeichnungsschlüssel und -wert die maximale Anzahl nicht verfügbarer Knoten. Der Wert wird als Prozentsatz angegeben. Ein Workerknoten ist während des Bereitstellungs-, Neulade- oder Einrichtungsprozesses nicht verfügbar. Bei Überschreitung eines beliebigen definierten maximalen Prozentsatzes für Nichtverfügbarkeit werden die in der Warteschlange befindlichen Workerknoten blockiert und so von der Aktualisierung ausgeschlossen.
    NodeSelectorKey
    Dies ist der Bezeichnungsschlüssel des Workerknotens, für den eine Regel festgelegt werden soll. Sie können Regeln sowohl für die von IBM bereitgestellten Standardbezeichnungen als auch für die von Ihnen erstellten Workerknotenbezeichnungen festlegen. Wenn Sie eine Regel für Workerknoten hinzufügen möchten, die zu einem Workerpool gehören, können Sie die Bezeichnung ibm-cloud.kubernetes.io/machine-type verwenden.
    NodeSelectorValue
    Der Bezeichnungswert, den der Workerknoten für die von Ihnen definierte Regel berücksichtigen muss.
  5. Erstellen Sie die Konfigurationszuordnung in Ihrem Cluster.

    oc apply -f <filepath/configmap.yaml>
    
  6. Stellen Sie sicher, dass die Konfigurationszuordnung erstellt wurde.

    oc get configmap --namespace kube-system
    
  7. Aktualisieren Sie die Workerknoten.

    ibmcloud oc worker update --cluster CLUSTER --worker WORKER-NODE-1-ID --worker WORKER-NODE-2-ID
    
  8. Optional: Überprüfen Sie die Ereignisse, die von der Konfigurationszuordnung möglicherweise ausgelöst werden, sowie alle eventuell auftretenden Gültigkeitsfehler. Die Ereignisse können im Abschnitt Events Ihrer CLI-Ausgabe überprüft werden.

    oc describe -n kube-system cm ibm-cluster-update-configuration
    
  9. Vergewissern Sie sich, dass die Aktualisierung abgeschlossen wurde, indem Sie die Kubernetes-Version der Workerknoten überprüfen.

    oc get nodes
    
  10. Stellen Sie sicher, dass keine Workerknoten doppelt vorhanden sind. In manchen Fällen werden für ältere Cluster nach einer Aktualisierung doppelte Workerknoten mit dem Status NotReady aufgelistet. Informationen zum Entfernen doppelter Workerknoten finden Sie im Abschnitt zur Fehlerbehebung.

Nächste Schritte

  • Wiederholen Sie den Aktualisierungsprozess mit anderen Worker-Pools.
  • Informieren Sie die Entwickler, die im Cluster arbeiten, damit diese ihre oc-CLI auf die Version des Kubernetes-Masters aktualisieren können.
  • Wenn das Kubernetes-Dashboard keine Auslastungsdiagramme anzeigt, löschen Sie den kube-dashboard.

Klassische Workerknoten in der Konsole aktualisieren

Wenn Sie die Konfigurationszuordnung (Configmap) erstmals eingerichtet haben, können Sie anschließend Workerknoten über die IBM Cloud-Konsole aktualisieren.

Gehen Sie wie folgt vor, um Workerknoten über die Konsole zu aktualisieren:

  1. Führen Sie die vorausgesetzten Schritte aus und richten Sie eine Konfigurationszuordnung ein, um zu steuern, wie Ihre Workerknoten aktualisiert werden.
  2. Über das IBM Cloud-Konsolenmenü Menüsymbol, klicken Sie auf Container > Cluster.
  3. Klicken Sie auf der Seite Cluster auf Ihren Cluster.
  4. Wählen Sie auf der Registerkarte Workerknoten das Kontrollkästchen für jeden Workerknoten aus, den Sie aktualisieren wollen. Über der Zeile der Tabellenüberschrift wird eine Aktionsleiste angezeigt.
  5. Klicken Sie in der Aktionsleiste auf Aktualisieren.

Wenn Sie Portworx in Ihrem Cluster installiert haben, müssen Sie die Portworx-Pods auf aktualisierten Workerknoten neu starten. Weitere Informationen finden Sie im Abschnitt zu den Portworx-Einschränkungen.

VPC-Workerknoten aktualisieren

Sie stellen fest, dass für Ihre Worker-Knoten in einem VPC-Cluster ein Update verfügbar ist. Was bedeutet das? Bei der Einrichtung von Sicherheitsupdates und -patches für den API-Server und anderen Komponenten des Masters müssen Sie darauf achten, dass Ihre Workerknoten synchronisiert bleiben. Sie können zwei Typen von Aktualisierung durchführen: Eine Aktualisierung nur der Patchversion oder eine Aktualisierung der Version (major.minor) mit der Patchversion.

Wenn Portworx in Ihrem Cluster bereitgestellt ist, führen Sie die Schritte unter VPC-Workerknoten mit Portworx-Datenträgern aktualisieren aus.

Es empfiehlt sich, bei jeder Aktualisierung der Arbeitsknoten rotieren Sie Ihre CA-Zertifikate zu verwenden, da der längste Schritt der Zertifikatsrotation das Neuladen oder Ersetzen der Arbeitsknoten beinhaltet.

Wenn Sie OpenShift-Datenbasis in Ihrem Cluster bereitgestellt haben, befolgen Sie die Schritte unter VPC-Workerknoten mit OpenShift-Datenbasis aktualisieren.

  • Patch: Eine Patchaktualisierung eines Workerknotens umfasst Korrekturen (Fixes) für die Sicherheit. Für Benutzer von VPC-Bare-Metal-Systemen können Sie den neuesten Patch mit dem Befehl „ ibmcloud oc worker reload “ installieren. Für Worker auf virtuellen VPC-Serverinstanzen verwenden Sie den Befehl „ ibmcloud oc worker replace “.
  • Hauptversion.Nebenversion: Eine Aktualisierung der Version (major.minor) stuft die Kubernetes-Version des Workerknotens auf dieselbe Version wie die des Masters hoch. Diese Art von Aktualisierung geht oft mit Änderungen an der Kubernetes-API oder anderen Verhaltensmustern einher, auf die Sie Ihren Cluster vorbereiten müssen. Beachten Sie, dass Ihre Worker-Knoten höchstens eine Version hinter der Master-Version zurückliegen dürfen (n-1). Sie können den VPC-Worker-Knoten auf denselben Patch aktualisieren, indem Sie den Befehl „ ibmcloud oc worker replace “ mit der Option „ --update “ verwenden.
Was passiert mit meinen Apps während eines Updates?
Wenn Sie Apps als Teil einer Bereitstellung auf Workerknoten ausführen, die Sie aktualisieren, werden die Apps auf anderen Workerknoten im Cluster neu geplant. Diese Workerknoten könnten sich in einem anderen Worker-Pool befinden. Um Ausfallzeiten Ihrer App zu vermeiden, müssen Sie sicherstellen, dass im Cluster genügend Kapazität zur Bewältigung der Arbeitslast vorhanden ist, beispielsweise durch eine Anpassung der Größe Ihrer Worker-Pools. Weitere Informationen finden Sie unter Workerknoten zu klassischen Clustern hinzufügen oder Workerknoten zu VPC-Clustern hinzufügen.
Was passiert mit meinem Worker-Knoten während eines Updates?
Der VPC-Worker-Knoten wird ersetzt, indem der alte Worker-Knoten entfernt und ein neuer Worker-Knoten bereitgestellt wird, der mit der aktualisierten Version oder der Version major.minor ausgeführt wird. Der Ersatzworkerknoten wird in derselben Zone, in demselben Worker-Pool und mit demselben Typ wie der gelöschte Workerknoten erstellt. Dem Ersatzworkerknoten wird jedoch eine neue private IP-Adresse zugewiesen. Alle angepassten Bezeichnungen oder Taints, die Sie auf den alten Workerknoten angewendet haben, gehen verloren (die Workerpoolbezeichnungen und -Taints werden jedoch auf den Ersatzworkerknoten angewendet).
Was passiert, wenn ich mehrere Worker-Knoten gleichzeitig austausche?
Wenn Sie mehrere Workerknoten gleichzeitig ersetzen, werden diese gleichzeitig (und nicht nacheinander) gelöscht und ersetzt. Stellen Sie sicher, dass Sie in Ihrem Cluster über ausreichend Kapazität verfügen, um Ihre Workloads neu planen zu können, bevor Sie die Workerknoten ersetzen.
Was passiert, wenn kein Ersatz-Worker-Knoten erstellt wird?
Ein Ersatzworkerknoten wird nur dann erstellt, wenn für den Workerpool die Automatische Neuverteilung aktiviert ist.

Voraussetzungen

Lesen Sie die Informationen zu den vorausgesetzten Schritten, bevor Sie Ihre Workerknoten der VPC-Infrastruktur aktualisieren.

Die Aktualisierung von Workerknoten kann zu Ausfallzeiten bei Ihren Apps und Services führen. Ihre Workerknotenmaschine wird entfernt und Daten werden gelöscht, sofern sie nicht außerhalb des Pods gespeichert sind.

VPC-Workerknoten über die Befehlszeilenschnittstelle (CLI) aktualisieren

Führen Sie die folgenden Schritte aus, um Ihre Worker-Knoten über die Befehlszeilenschnittstelle (CLI) zu aktualisieren.

  1. Führen Sie die vorausgesetzten Schritte aus.
  2. Optional: Erhöhen Sie die Kapazität Ihres Clusters, indem Sie die Größe des Worker-Pools anpassen. Die Pods auf dem Workerknoten können neu geplant werden und während der Aktualisierung auf den hinzugefügten Workerknoten weiterhin ausgeführt werden. Weitere Informationen finden Sie unter Workerknoten zu klassischen Clustern hinzufügen oder Workerknoten zu VPC-Clustern hinzufügen.
  3. Listen Sie die Workerknoten in Ihrem Cluster auf und notieren Sie die ID und die Primäre IP-Adresse des Workerknotens, den Sie aktualisieren möchten.
    ibmcloud oc worker ls --cluster CLUSTER
    
  4. Ersetzen Sie den Workerknoten, um entweder die Patchversion oder die Version (major.minor), die der Masterversion entspricht, zu aktualisieren.
    • Um den Worker-Knoten auf dieselbe Version von „ major.minor “ wie den Master zu aktualisieren, fügen Sie die Option „ --update “ hinzu.
        ibmcloud oc worker replace --cluster CLUSTER --worker WORKER-NODE-ID --update
        ```
    *  Um den Worker-Knoten auf die neueste Patch-Version bei gleicher „ `major.minor` “-Version zu aktualisieren, lassen Sie die Option „ `--update` “ weg.
    ```sh {: pre}
        ibmcloud oc worker replace --cluster CLUSTER --worker WORKER-NODE-ID
        ```
    
  5. Wiederholen Sie diese Schritte für jeden Workerknoten, der aktualisiert werden soll.
  6. Optional: Sobald sich die ersetzten Worker-Knoten im Status „Ready“ befinden, passen Sie die Größe des Worker-Pools an die gewünschte Clusterkapazität an. Weitere Informationen finden Sie unter Workerknoten zu VPC-Clustern hinzufügen.

Wenn Portworx in Ihrem VPC-Cluster ausgeführt wird, müssen Sie Ihren Block Storage for VPC-Datenträger manuell dem neuen Workerknoten zuordnen.

VPC-Workerknoten in der Konsole aktualisieren

Sie können Ihre VPC-Workerknoten in der Konsole aktualisieren. Bevor Sie beginnen, sollten Sie erwägen, dem Cluster Worker-Knoten hinzuzufügen, um Ausfallzeiten Ihrer Anwendungen zu vermeiden.

  1. Führen Sie die vorausgesetzten Schritte aus.
  2. Über das IBM Cloud-Konsolenmenü Menüsymbol, klicken Sie auf Container > Cluster.
  3. Klicken Sie auf der Seite Cluster auf Ihren Cluster.
  4. Wählen Sie auf der Registerkarte Workerknoten das Kontrollkästchen für jeden Workerknoten aus, den Sie aktualisieren wollen. Über der Zeile der Tabellenüberschrift wird eine Aktionsleiste angezeigt.
  5. Klicken Sie in der Aktionsleiste auf Aktualisieren.

Typen (Maschinentypen) aktualisieren

Vorbereitende Schritte:

Gehen Sie wie folgt vor, um Typen zu aktualisieren:

  1. Listen Sie verfügbare Workerknoten auf und notieren Sie deren private IP-Adressen.

    1. Listen Sie verfügbare Worker-Pools in Ihrem Cluster auf.
        ibmcloud oc worker-pool ls --cluster CLUSTER
        ```
    2. Listen Sie die Workerknoten im Worker-Pool auf. Notieren Sie sich die **ID** und den Wert für **Private IP**.
    ```sh {: pre}
        ibmcloud oc worker ls --cluster CLUSTER --worker-pool WORKER-POOL
        ```
    3. Rufen Sie die Details für einen Workerknoten ab. Notieren Sie in der Ausgabe die Zone und entweder die private und die öffentliche VLAN-ID für klassische Cluster oder die Teilnetz-ID für VPC-Cluster.
    ```sh {: pre}
        ibmcloud oc worker get --cluster CLUSTER --worker WORKER-ID
        ```
    
  2. Listen Sie die verfügbaren Typen in der Zone auf.

    ibmcloud oc flavors --zone <zone>
    
  3. Erstellen Sie einen Workerknoten mit dem neuen Maschinentyp.

    1. Erstellen Sie einen Worker-Pool mit der Anzahl der Workerknoten, die Sie ersetzen möchten.
      • Klassische Cluster:
        ibmcloud oc worker-pool create classic --name WORKER-POOL --cluster CLUSTER --flavor FLAVOR --size-per-zone NUMBER-OF-WORKERS-PER-ZONE
        
      • VPC-Cluster der 2. Generation:
        ibmcloud oc worker-pool create vpc-gen2 --name NAME --cluster CLUSTER --flavor FLAVOR --size-per-zone NUMBER-OF-WORKERS-PER-ZONE --label LABEL
        
    2. Stellen Sie sicher, dass der Worker-Pool erstellt wird.
        ibmcloud oc worker-pool ls --cluster CLUSTER
        ```
    3. Fügen Sie die Zone zu Ihrem Worker-Pool hinzu, die Sie zuvor abgerufen haben. Beim Hinzufügen einer Zone werden die Workerknoten, die im Worker-Pool definiert sind, in der Zone bereitgestellt und für die zukünftige Planung von Workloads berücksichtigt. Wenn Sie die Workerknoten auf mehrere Zonen verteilen möchten, wählen Sie einen [klassischen Mehrzonenstandort](/docs/openshift?topic=openshift-regions-and-zones#zones-mz) oder [VPC](/docs/openshift?topic=openshift-regions-and-zones#zones-vpc)-Mehrzonenstandort aus.
        * Klassische Cluster:
            ```sh {: pre}
            ibmcloud oc zone add classic --zone ZONE --cluster CLUSTER --worker-pool WORKER-POOL --private-vlan PRIVATE-VLAN-ID --public-vlan PUBLIC-VLAN-ID
            ```
        * VPC-Cluster:
            ```sh {: pre}
            ibmcloud oc zone add vpc-gen2 --zone ZONE --cluster CLUSTER --worker-pool WORKER-POOL --subnet-id VPC-SUBNET-ID
            ```
    
  4. Warten Sie, bis die Workerknoten bereitgestellt wurden. Wenn der Status des Workerknotens in Normal wechselt, ist die Bereitstellung abgeschlossen.

    ibmcloud oc worker ls --cluster CLUSTER
    
  5. Entfernen Sie den alten Workerknoten. Hinweis: Wenn Sie einen Typ entfernen, der monatlich abgerechnet wird (zum Beispiel Bare-Metal), dann wird Ihnen der gesamte Monat noch berechnet.

    1. Entfernen Sie den Worker-Pool mit dem alten Maschinentyp. Durch das Entfernen eines Worker-Pools werden alle Workerknoten im Pool in allen Zonen entfernt. Dieser Prozess kann einige Minuten dauern.
        ibmcloud oc worker-pool rm --worker-pool WORKER-POOL --cluster CLUSTER
        ```
    2. Stellen Sie sicher, dass der Worker-Pool entfernt wird.
    ```sh {: pre}
        ibmcloud oc worker-pool ls --cluster CLUSTER
        ```
    
  6. Stellen Sie sicher, dass die Workerknoten aus Ihrem Cluster entfernt werden.

    ibmcloud oc worker ls --cluster CLUSTER
    
  7. Wiederholen Sie diese Schritte, um andere Worker-Pools oder eigenständige Workerknoten auf verschiedene Typen zu aktualisieren.

Wie wird für Worker-Pools ein Scale-down durchgeführt?

Wenn die Anzahl der Workerknoten in einem Worker-Pool verringert wird, z. B. während einer Aktualisierung des Workerknotens oder mit dem Befehl ibmcloud oc worker-pool resize, werden die Workerknoten basierend auf mehreren Eigenschaften, einschließlich Status, Zustand und Version, zum Löschen priorisiert.

Diese Prioritätslogik ist für das Autoscaler-Add-on nicht relevant.

Die folgende Tabelle zeigt die Reihenfolge, in der Workerknoten zum Löschen priorisiert werden.

Sie können den Befehl ibmcloud oc worker ls ausführen, um alle in der Tabelle aufgelisteten Workerknoteneigenschaften anzuzeigen.

Priorität für Workerknoten, die während des Scale-down des Worker-Pools gelöscht wurden
Priorität Eigenschaft Beschreibung
1 Status des Workerknotens Workerknoten mit dem Status 'Nicht funktionsfähig' oder 'Niedrig' werden für das Entfernen priorisiert. Diese Liste zeigt die Status sortiert von der höchsten zur niedrigsten Priorität an: provision_failed, deploy_failed, deleting, provision_pending, provisioning, deploying, provisioned, reloading_failed, reloading, deployed.
2 Gesundheit der Arbeiterknoten Nicht einwandfreie Workerknoten werden vor Workerknoten in einwandfreiem Zustand priorisiert. Diese Liste zeigt die Statuszustände mit der höchsten bis niedrigsten Priorität an: critical, warning, pending, unsupported, normal.
3 Workerknotenversion Workerknoten, die in älteren Versionen ausgeführt werden, haben eine höhere Löschpriorität.
4 Gewählte Platzierungseinstellung Nur für Worker, die auf einem dedizierten Host ausgeführt werden Workerknoten, die auf einem dedizierten Host ausgeführt werden, für den die Option DesiredPlacementDisabled auf true gesetzt ist, haben eine höhere Löschpriorität.
5 alphabetische Reihenfolge Nachdem Workerknoten anhand der oben aufgeführten Faktoren priorisiert wurden, werden sie in alphabetischer Reihenfolge gelöscht. Beachten Sie, dass IDs für Worker in klassischen und VPC-Clustern basierend auf den Konventionen für Workerknoten-IDs mit dem Alter korrelieren, sodass ältere Workerknoten zuerst entfernt werden.

Clusterkomponenten aktualisieren

Ihr Red Hat OpenShift on IBM Cloud-Cluster wird mit Komponenten geliefert (z. B. Ingress), die automatisch installiert werden, wenn Sie den Cluster bereitstellen. Diese Komponenten werden standardmäßig automatisch von IBM aktualisiert. Sie können jedoch automatische Aktualisierungen für manche Komponenten inaktivieren und sie separat über die Master- und Workerknoten aktualisieren.

Welche Standardkomponenten kann ich unabhängig vom Cluster aktualisieren?
Optional können Sie automatische Aktualisierungen für die folgenden Komponenten inaktivieren:
Gibt es Komponenten, die ich nicht unabhängig vom Cluster aktualisieren kann?
Ja. Ihr Cluster wird mit den folgenden verwalteten Komponenten und zugehörigen Ressourcen bereitgestellt, die nicht geändert werden können, außer zum Skalieren von Pods oder zum Bearbeiten von Konfigurationszuordnungen, um die Leistung zu steigern. Wenn Sie versuchen, eine dieser Komponenten für die Bereitstellung zu ändern, werden ihre ursprünglichen Einstellungen in einem regelmäßigen Intervall wiederhergestellt, wenn sie mit dem Cluster-Master aktualisiert werden. Beachten Sie jedoch, dass Ressourcen, die Sie erstellen und die zu diesen Komponenten gehören (wie z. B. die Calico-Netzrichtlinien, die Sie für die Implementierung durch die Calico-Bereitstellungskomponenten erstellen), nicht aktualisiert werden.
  • Komponenten von calico
  • Komponenten von coredns
  • ibm-cloud-provider-ip
  • ibm-file-plugin
  • ibm-keepalived-watcher
  • ibm-master-proxy
  • ibm-storage-watcher
  • Komponenten von kubernetes-dashboard
  • metrics-server
  • olm-operator- und catalog-Komponenten (1.16 und höher)
  • vpn
Kann ich andere Plug-ins oder Add-ons als die Standardkomponenten installieren?
Ja. Unter Red Hat OpenShift on IBM Cloud finden Sie weitere Plug-ins und Add-ons, aus denen Sie auswählen können, um Ihren Cluster um zusätzliche Funktionen zu erweitern. Beispielsweise möchten Sie möglicherweise in Ihrem Cluster die von IBM verwalteten Add-ons aktivieren. Sie müssen diese Add-ons separat aktualisieren, indem Sie die Schritte zur Aktualisierung verwalteter Add-ons ausführen.

Automatische Aktualisierungen für Fluentd verwalten

Wenn Sie eine Protokollierungskonfiguration für eine Quelle in Ihrem Cluster erstellen, die an einen externen Server weitergeleitet werden soll, wird eine Fluentd-Komponente in Ihrem Cluster erstellt. Zum Ändern Ihrer Protokollierungs- oder Filterkonfigurationen muss die Fluentd-Komponente auf dem neuesten Versionsstand sein. Standardmäßig sind automatische Aktualisierungen für die Komponente aktiviert.

Sie können die automatischen Aktualisierungen der Fluentd-Komponente auf folgende Arten verwalten. Hinweis: Um die folgenden Befehle auszuführen, benötigen Sie die IAM-Plattformzugriffsrolle „ Administrator IBM Cloud “ für den Cluster.

  • Überprüfen Sie, ob automatische Aktualisierungen aktiviert sind, indem Sie den Befehl ibmcloud oc logging autoupdate get --cluster CLUSTER ausführen.
  • Deaktivieren Sie automatische Updates, indem Sie den Befehlibmcloud oc logging autoupdate disable “ ausführen.
  • Wenn automatische Aktualisierungen inaktiviert sind, Sie die Konfiguration jedoch ändern müssen, stehen Ihnen zwei Optionen zur Auswahl:
    • Aktivieren Sie automatische Aktualisierungen für Ihre Fluentd-Pods.
        ibmcloud oc logging autoupdate enable --cluster CLUSTER
        ```
    * Erzwingen Sie eine einmalige Aktualisierung, wenn Sie einen Protokollierungsbefehl verwenden, der die Option `--force-update` enthält. **Hinweis**: Die Pods werden auf die aktuelle Version der Fluentd-Komponente aktualisiert, Fluentd wird jedoch zukünftig nicht automatisch aktualisiert.
            Beispielbefehl
    
    ```sh {: pre}
        ibmcloud oc logging config update --cluster CLUSTER --id LOG-CONFIG-ID --type LOG-TYPE --force-update
        ```
    

Automatische Aktualisierungen für Ingress-ALBs verwalten

Steuern Sie, wann die Komponente für die Lastausgleichsfunktion für Ingress-Anwendungen (ALB) aktualisiert wird. Informationen zur Sicherstellung der Aktualität von ALBs finden Sie im Abschnitt Ingress-ALB-Lebenszyklus verwalten.

Verwaltete Add-ons aktualisieren

Die Add-ons für Managed- IBM Cloud Kubernetes Service-Cluster bieten eine einfache Möglichkeit, Ihren Cluster um Open-Source-Funktionen zu erweitern, wie beispielsweise Istio. Die Version des Open-Source-Tools, das Sie zu Ihrem Cluster hinzufügen, wurde von IBM getestet und für die Verwendung in IBM Cloud Kubernetes Service genehmigt. Informationen zur Vorgehensweise beim Aktualisieren von verwalteten Add-ons, die Sie in Ihrem Cluster aktiviert haben, auf die neuesten Versionen finden Sie unter Verwaltete Add-ons aktualisieren.