Cluster, Workerknoten und Clusterkomponenten aktualisieren

Sorgen Sie für die Sicherheit und den Support Ihres Clusters, indem Sie den Master, die Worker-Knoten und die Cluster-Komponenten in der richtigen Reihenfolge aktualisieren. Eine Aktualisierung außerhalb der vorgesehenen Reihenfolge kann zu Fehlern aufgrund von Versionsabweichungen oder zu unerwarteten Ausfallzeiten führen.

Führen Sie die Aktualisierungen in der folgenden Reihenfolge durch:

  1. Aktualisieren Sie den Cluster-Master.
  2. Aktualisieren Sie Ihre Worker-Knoten – Classic, VPC oder Satellite – je nach Art Ihrer Infrastruktur. Sie sind sich nicht sicher, um welchen Typ es sich handelt? Klicken Sie in der IBM Cloud-Konsole auf Ihren Cluster und überprüfen Sie das Feld Infrastruktur auf der Registerkarte Übersicht – dort wird Classic, VPC oder Satellite angezeigt.
  3. Aktualisieren Sie Clusterkomponenten wie Fluentd und Ingress ALBs, falls Sie diese manuell verwalten.
  4. Verwaltete Add-ons aktualisieren.

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. Außerdem dürfen Ihre Worker-Knoten höchstens zwei Nebenversionen hinter der Master-Version zurückliegen (n-2). Aktualisieren Sie zunächst 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 Kubernetes-Versionsinformationen auf mögliche Auswirkungen überprüfen und den Befehlibmcloud ks cluster master update selbst sicher ausführen, ohne darauf zu warten, dass die automatische Aktualisierung wirksam wird.

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

Was geschieht 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 des Master-Prozessdiagramms unter Kubernetes

Schritte zum Aktualisieren des Cluster-Masters

Bevor Sie beginnen, stellen Sie sicher, dass Sie über die IAM-Plattformzugriffsrolle Operator oder Administrator verfügen. Wenn Sie sich bezüglich Ihrer Zugriffsrolle unsicher sind, gehen Sie in der IBM Cloud-Konsole zu Verwalten → Zugriff (IAM) → Benutzer oder wenden Sie sich an Ihren Kontoadministrator.

Wenn gerade eine Zertifikatsrotation der Zertifizierungsstelle (CA) stattfindet, wird das Master-Update blockiert, bis die Rotation abgeschlossen ist. Überprüfen Sie den Status einer eventuell laufenden Rotation, bevor Sie beginnen.

Gehen Sie wie folgt vor, um die Haupt- oder _Neben_version des Kubernetes-Masters zu aktualisieren:

  1. Überprüfen Sie die Kubernetes-Versionsinformationen und nehmen Sie alle mit Update before master gekennzeichneten Aktualisierungen vor.

  2. Überprüfen Sie alle hilfreichen Warnungen zu Kubernetes, wie z. B. 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 ks cluster addon ls --cluster CLUSTER
        
      2. Überprüfen Sie die installierte Kubernetes-Version für jedes installierte Add-on.
        ibmcloud ks addon-versions
        
      3. Wenn Ihr Add-on aktualisiert werden muss, um in der Kubernetes-Version ausgeführt werden zu können, auf die Ihr Cluster aktualisiert werden soll, aktualisieren Sie das Add-on.
    • Plug-ins überprüfen

      1. Suchen Sie im Helm-Katalog 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, um in der Kubernetes-Version ausgeführt zu werden, auf die Sie Ihren Cluster aktualisieren möchten, aktualisieren Sie das Plug-in, indem Sie die Plug-in-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 ks 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 ks cluster ls aus.

  6. Installieren Sie die Version der kubectl cli, die mit dem API-Server Ihres Masters übereinstimmt. Kubernetes unterstützt keine kubectl Client-Versionen, die zwei oder mehr Versionen von der Server-Version abweichen (n +/- 2). Um Ihre lokale Konfiguration zu aktualisieren, führen Sie aus ibmcloud ks cluster config -c CLUSTER_NAME_OR_ID und überprüfen Sie anschließend mit kubectl version --client.

Sobald die Aktualisierung des Master-Knotens abgeschlossen ist, aktualisieren Sie Ihre Worker-Knoten. Die Vorgehensweise hängt von Ihrem Infrastrukturtyp ab:

  1. Aktualisierung klassischer Worker-Knoten – erfolgt über ein rollierendes Update, das über eine ConfigMap und den worker update Befehl gesteuert wird.
  2. Aktualisierung von VPC-Worker-Knoten – VPC-VSI-Worker und VPC-Bare-Metal-Worker müssen. verwenden worker replace --update. Das Verfahren für rollierende Updates von ConfigMap wird für VPC-Worker-Knoten noch nicht unterstützt.

Klassische Workerknoten aktualisieren

Klassische Infrastruktur-Worker-Knoten führen ein rollierendes Update an Ort und Stelle durch. Aktualisierungen werden durch eine Kubernetes ( ConfigMap ) gesteuert, die festlegt, wie viele Knoten gleichzeitig nicht verfügbar sein dürfen. Der Befehl ibmcloud ks worker update wird nur für klassische Worker-Knoten unterstützt.

Sie können zwei Arten von Aktualisierungen vornehmen:

  • Patch: Wendet Sicherheitskorrekturen und Updates auf die neueste Patch-Version an. Verwenden Sie oder ibmcloud ks worker reload ibmcloud ks worker update. Beide Befehle aktualisieren den Knoten auf die neueste Patch-Version. Der Befehl update wendet gleichzeitig alle verfügbaren major.minor Versionsaktualisierungen an, um den Stand des Master-Servers zu erreichen.
  • Major.minor: Aktualisiert die Version des Worker-Knoten- Kubernetes s, sodass sie mit der des Masters übereinstimmt. Ihre Worker-Knoten dürfen höchstens zwei Versionen hinter dem Master zurückliegen (n-2). Verwenden Sie den Befehl ibmcloud ks worker update.

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?
Anwendungen, die auf aktualisierten Worker-Knoten laufen, werden auf andere Worker-Knoten im Cluster umverteilt – einschließlich Knoten in anderen Worker-Pools oder eigenständigen Worker-Knoten. Um Ausfallzeiten zu vermeiden, stellen Sie sicher, dass im Cluster genügend Kapazität vorhanden ist, um die Arbeitslast zu bewältigen, bevor Sie das Update starten.
Wie kann ich steuern, wie viele Worker-Knoten während eines Updates oder Reloads gleichzeitig heruntergefahren werden?
Verwenden Sie den Parameter Kubernetes ( ConfigMap ), um die maximale Anzahl von Worker-Knoten festzulegen, die gleichzeitig nicht verfügbar sein dürfen. Worker-Knoten werden anhand ihrer Bezeichnungen identifiziert. Sie können von IBM bereitgestellte Bezeichnungen oder benutzerdefinierte Bezeichnungen verwenden. Wenn alle Ihre Worker-Knoten verfügbar bleiben sollen, sollten Sie in Betracht ziehen, die Größe Ihres Worker-Pools anzupassen oder eigenständige Worker-Knoten hinzuzufügen, um vor dem Update vorübergehend zusätzliche Kapazität bereitzustellen.

Der ConfigMap steuert ausschließlich das Aktualisierungsverhalten. Dies hat keine Auswirkungen auf das Neuladen von Worker-Knoten, das auf Anfrage sofort erfolgt.

Was passiert, wenn ich keine Konfigurationszuordnung definiere?
Standardmäßig dürfen während des Updates maximal 20 % aller Worker-Knoten in jedem Cluster nicht verfügbar sein. Sie können diesen Wert überschreiben, indem Sie eine ConfigMap mit einem Eintrag defaultcheck.json definieren.

Voraussetzungen

Bevor Sie Ihre Worker-Knoten der klassischen Infrastruktur aktualisieren, führen Sie die folgenden vorbereitenden Schritte durch.

Während einer Aktualisierung des Worker-Knotens wird der Rechner des Worker-Knotens neu aufgesetzt, und alle Daten, die nicht auf einem persistenten Speicher gespeichert sind, werden dauerhaft gelöscht. Stellen Sie sicher, dass alle Daten, die Sie aufbewahren müssen, außerhalb des Worker-Knotens gespeichert sind, bevor Sie beginnen.

Wenn Sie Portworx in Ihrem Cluster installiert haben, müssen Sie Ihre Portworx-Konfiguration aktualisieren, bevor Sie die Worker-Knoten aktualisieren.

Maßnahmen vor dem Update (in der angegebenen Reihenfolge durchführen)

  1. Lesen Sie die Versionsinformationen zu Kubernetes, um sich über die neuesten Sicherheitspatches und erforderlichen Änderungen zu informieren.
  2. Nehmen Sie alle Änderungen vor, die im Leitfaden zur Versionsvorbereitung für Kubernetes mit Update vor Master oder Update nach Master gekennzeichnet sind.
  3. Aktualisieren Sie den Master, bevor Sie die Worker-Knoten aktualisieren. Die Version des Worker-Knotens darf nicht höher sein als die Version des API-Servers, der auf dem Master läuft.
  4. Melden Sie sich an Ihrem Konto an. If applicable, target the appropriate resource group. Legen Sie den Kontext für den Cluster fest.
  5. Erwägen Sie, Ihrem Cluster Worker-Knoten hinzuzufügen, um während des Updates zusätzliche Kapazität für die Neuplanung von Workloads bereitzustellen. Sie können die zusätzlichen Knoten nach Abschluss des Updates entfernen.

Erforderliche Berechtigungen

Stellen Sie sicher, dass Sie über die IAM-Plattformzugriffsrolle Operator oder Administrator verfügen. Wenn Sie sich bezüglich Ihrer Zugriffsrolle unsicher sind, gehen Sie in der IBM Cloud-Konsole zu Verwalten → Zugriff (IAM) → Benutzer oder wenden Sie sich an Ihren Kontoadministrator.

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

Verwenden Sie eine ConfigMap, um ein rollierendes Update Ihrer klassischen Worker-Knoten durchzuführen. Mit dem ConfigMap können Sie festlegen, wie viele Knoten pro Zone oder Region gleichzeitig nicht verfügbar sein dürfen. Wenn die standardmäßige 20-Prozent-Ausfallregel für Ihren Cluster akzeptabel ist, können Sie die Schritte 3 und 4 (Erstellung von ConfigMap ) überspringen und direkt mit Schritt 5 fortfahren, um das Update mit dem Standardverhalten anzuwenden.

  1. Führen Sie die vorausgesetzten Schritte aus.

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

    ibmcloud ks 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).

    kubectl 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. Der ConfigMap unterstützt bis zu 15 benannte Überprüfungen. Jede Überprüfung zielt auf eine Gruppe von Worker-Knoten anhand ihrer Kennzeichnung ab und legt den maximalen Prozentsatz dieser Knoten fest, die gleichzeitig nicht verfügbar sein dürfen. Das folgende Beispiel zeigt eine Zonenprüfung (zonecheck.json), eine Regionalprüfung (regioncheck.json), eine Standard-Fallback-Prüfung (defaultcheck.json) sowie eine Vorlage für benutzerdefinierte Prüfungen. Wählen Sie bei jedem Schritt eine der Worker-Node-Bezeichnungen aus, die Sie im vorherigen Schritt abgerufen haben, um die Zielknoten zu identifizieren.

    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. Definieren Sie bis zu 15 Prüfungen in einer Konfigurationskarte. 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 wird, bis der Drain-Vorgang 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.

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

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

    ibmcloud ks 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.

    kubectl 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.

    kubectl get nodes
    
  10. Stellen Sie sicher, dass keine Workerknoten doppelt vorhanden sind. Manchmal werden in älteren Clustern nach einer Aktualisierung doppelte Worker-Knoten mit einem Status NotReady aufgeführt. Informationen zum Entfernen doppelter Workerknoten finden Sie im Abschnitt zur Fehlerbehebung.

Nächste Schritte

  1. Wiederholen Sie den Aktualisierungsprozess mit anderen Worker-Pools.

  2. Benachrichtigen Sie alle Entwickler, die im Cluster arbeiten, damit sie ihre kubectl CLI auf die Master-Version von Kubernetes aktualisieren. Die Verwendung eines Clients kubectl, dessen Version um zwei oder mehr Versionen von der Serverversion abweicht, wird nicht unterstützt und kann zu unerwarteten Fehlern führen.

  3. Wenn das Kubernetes-Dashboard keine Auslastungsdiagramme anzeigt, löschen Sie den kube-dashboard.

Klassische Workerknoten in der Konsole aktualisieren

Nachdem Sie die ConfigMap zum ersten Mal eingerichtet haben, können Sie die Worker-Knoten über die IBM Cloud-Konsole aktualisieren. Die Konsole beachtet die Nichtverfügbarkeitsregeln, die Sie in der ConfigMap definiert haben.

  1. Führen Sie die erforderlichen Schritte durch und richten Sie eine ConfigMap ein, um zu steuern, wie Ihre Worker-Knoten 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 den aktualisierten Worker-Knoten neu starten. Weitere Informationen finden Sie im Abschnitt zu den Portworx-Einschränkungen.

VPC-Workerknoten aktualisieren

VPC-Worker-Knoten werden je nach Typ unterschiedlich aktualisiert. Der Befehl ibmcloud ks worker update wird für keinen VPC-Worker-Knoten unterstützt. In jedem Fall muss zuerst der Cluster-Master aktualisiert werden.

  • VPC-Bare-Metal-Worker und VPC-Virtual-Server-Instance-Worker (VSI): Ersetzt durch ( ibmcloud ks worker replace --update zur Anpassung an die Master-Version) oder ibmcloud ks worker replace (nur Patch-Aktualisierung). Der alte Knoten wird gelöscht und ein neuer bereitgestellt.

Sie können zwei Arten von Aktualisierungen vornehmen:

  • Patch: Wendet Sicherheitskorrekturen und Updates auf den neuesten Patch der aktuellen BOM-Version an. Verwenden Sie ibmcloud ks worker replace.
  • Major.minor: Aktualisiert die Version des Worker-Knoten- Kubernetes s, sodass sie mit der des Masters übereinstimmt. Ihre Worker-Knoten dürfen höchstens zwei Versionen hinter dem Master zurückliegen (n-2). Verwenden Sie ibmcloud ks worker replace --update.

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?
Anwendungen, die auf aktualisierten Worker-Knoten laufen, werden auf andere Worker-Knoten im Cluster umverteilt. Diese Workerknoten könnten sich in einem anderen Worker-Pool befinden. Um Ausfallzeiten zu vermeiden, stellen Sie sicher, dass Ihr Cluster über ausreichende Kapazitäten verfügt, um die Arbeitslast zu bewältigen, bevor Sie mit dem Update beginnen. 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 Worker-Knoten wird ersetzt, indem der alte Worker-Knoten entfernt und ein neuer Worker-Knoten bereitgestellt wird, der mit dem aktualisierten Patch oder der aktualisierten Version major.minor läuft. 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

Bevor Sie die Worker-Knoten Ihrer VPC-Infrastruktur aktualisieren, führen Sie die folgenden vorbereitenden Schritte durch.

Bei VPC-VSI-Workern wird der Worker-Knoten gelöscht und durch einen neuen Knoten ersetzt. Bei VPC-Bare-Metal-Workern wird der Knoten an Ort und Stelle neu geladen. In beiden Fällen werden Daten, die nicht auf einem persistenten Speicher gespeichert sind, dauerhaft gelöscht. Stellen Sie sicher, dass alle Daten, die Sie aufbewahren müssen, außerhalb des Worker-Knotens gespeichert sind, bevor Sie beginnen.

Wenn Sie Portworx in Ihrem Cluster bereitgestellt haben, befolgen Sie die Schritte zur Aktualisierung der VPC-Worker-Knoten mit Portworx-Volumes anstelle der Schritte auf dieser Seite.

Maßnahmen vor dem Update (in der angegebenen Reihenfolge durchführen)

  1. Lesen Sie die Versionsinformationen zu Kubernetes, um sich über die neuesten Sicherheitspatches und erforderlichen Änderungen zu informieren.
  2. Nehmen Sie alle Änderungen vor, die im Leitfaden zur Versionsvorbereitung für Kubernetes mit Update vor Master oder Update nach Master gekennzeichnet sind.
  3. Aktualisieren Sie den Master, bevor Sie die Worker-Knoten aktualisieren. Die Version des Worker-Knotens darf nicht höher sein als die Version des API-Servers, der auf dem Master läuft.
  4. Melden Sie sich an Ihrem Konto an. If applicable, target the appropriate resource group. Legen Sie den Kontext für den Cluster fest.

Erforderliche Berechtigungen

Stellen Sie sicher, dass Sie über die IAM-Plattformzugriffsrolle Operator oder Administrator verfügen. Wenn Sie sich bezüglich Ihrer Zugriffsrolle unsicher sind, gehen Sie in der IBM Cloud-Konsole zu Verwalten → Zugriff (IAM) → Benutzer oder wenden Sie sich an Ihren Kontoadministrator.

VPC-Workerknoten über die Befehlszeilenschnittstelle (CLI) aktualisieren

Führen Sie die folgenden Schritte aus, um Ihre Worker-Knoten mithilfe der 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 ks worker ls --cluster CLUSTER
    
  4. Aktualisieren Sie den Worker-Knoten.

    Verwenden Sie den Befehl worker replace, um entweder die Patch-Version oder die Version major.minor zu aktualisieren, die der Master-Version entspricht.

    • Um den Worker-Knoten auf dieselbe major.minor Version wie den Master zu aktualisieren, beispielsweise von 1.35 auf 1.36, fügen Sie die Option --update hinzu.
        ibmcloud ks worker replace --cluster CLUSTER --worker WORKER-NODE-ID --update
        ```
    *  Um den Worker-Knoten auf die neueste Patch-Version derselben `major.minor` Version zu aktualisieren, z. B. von 1.35.8_1530 auf 1.35.9_1533, lassen Sie die Option `--update` weg.
    ```sh {: pre}
        ibmcloud ks 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.

Firmware-Updates während des Neustarts von VPC-Bare-Metal-Workern

Wenn Sie einen VPC-Bare-Metal-Worker-Knoten neu starten, prüft die IBM Cloud-Infrastruktur automatisch, ob für diesen Server ein Firmware-Update ansteht, und führt dieses im Rahmen des Neustartvorgangs durch. Es sind keine weiteren Maßnahmen erforderlich, um das Firmware-Update auszulösen.

Beachten Sie die folgenden Punkte, wenn Sie einen VPC-Bare-Metal-Worker-Knoten neu laden:

Verlängerte Ladezeit
Wenn während des Neuladens ein Firmware-Update durchgeführt wird, kann sich die Gesamtdauer des Neuladens erheblich – um 30 Minuten oder mehr – gegenüber der üblichen Neuladezeit verlängern. Planen Sie Ihre Wartungsfenster entsprechend.
Keine Vorab-Einblicke in anstehende Aktualisierungen
Es ist nicht ersichtlich, ob für einen Worker-Knoten ein Firmware-Update ansteht, bevor Sie den Befehl reload ausführen.
Risiko eines Datenverlusts
Wie bei allen VPC-Bare-Metal-Worker-Neuinstallationen werden die Daten auf den lokalen Festplatten während der Neuinstallation gelöscht, unabhängig davon, ob ein Firmware-Update durchgeführt wird. Sichern Sie alle Daten, die nicht auf einem dauerhaften Speichermedium gespeichert sind, bevor Sie den Ladevorgang erneut starten.
Fehler beim Neuladen aufgrund eines Firmware-Updates
In einigen Fällen kann ein Firmware-Update fehlschlagen, was dazu führt, dass der Worker-Knoten in einen Zustand reload_failed (Failed to reload worker) mit dem Statusdetail wechselt The infrastructure firmware update has failed. (P4056). Falls Folgendes auftritt:
  1. Warten Sie einige Minuten und versuchen Sie dann erneut, die Seite neu zu laden, indem Sie den Befehl erneut ibmcloud ks worker reload --cluster CLUSTER --worker WORKER-NODE-ID ausführen.
  2. Sollte der Fehler nach 2–3 Versuchen weiterhin bestehen, eröffnen Sie bitte einen Support-Fall unter IBM Cloud.

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.

Was die Aktion Update bewirkt, hängt vom Typ des Worker-Knotens ab:

  • Alle VPC-Worker: Der Worker-Knoten wird bei der aktualisierten Version durch einen neuen Knoten ersetzt.
  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

Aktualisieren Sie den Flavor (Maschinentyp) Ihrer Worker-Knoten, wenn Sie andere Rechenressourcen benötigen – zum Beispiel mehr Arbeitsspeicher, zusätzliche CPUs oder eine GPU-fähige Maschine. Durch das Aktualisieren einer Variante wird ein neuer Worker-Pool mit der neuen Variante bereitgestellt und anschließend der alte Worker-Pool entfernt. Da bei diesem Vorgang Knoten ersetzt werden, werden alle Daten auf den Worker-Knoten, die nicht auf einem persistenten Speicher gespeichert sind, dauerhaft gelöscht.

Vorbereitende Schritte

So aktualisieren Sie Flavors

  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 ks 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 ks 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 ks worker get --cluster CLUSTER --worker WORKER-ID
        ```
    
  2. Listen Sie die verfügbaren Typen in der Zone auf.

    ibmcloud ks 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 ks 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 ks 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 ks 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](/docs/containers?topic=containers-regions-and-zones#zones-mz) oder [VPC](/docs/containers?topic=containers-regions-and-zones#zones-vpc)-Mehrzonenstandort.
        * Klassische Cluster:
            ```sh {: pre}
            ibmcloud ks 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 ks 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 ks worker ls --cluster CLUSTER
    
  5. Entfernen Sie den alten Worker-Pool. Wenn Sie eine Classic-Bare-Metal-Variante (die monatlich abgerechnet wird) entfernen, wird Ihnen der gesamte Monat in Rechnung gestellt, auch wenn Sie sie mitten im Monat entfernen. VPC-Worker, einschließlich Bare-Metal-Worker, werden stundenweise abgerechnet.

    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 ks worker-pool rm --worker-pool WORKER-POOL --cluster CLUSTER
        ```
    2. Stellen Sie sicher, dass der Worker-Pool entfernt wird.
    ```sh {: pre}
        ibmcloud ks worker-pool ls --cluster CLUSTER
        ```
    
  6. Stellen Sie sicher, dass die Workerknoten aus Ihrem Cluster entfernt werden.

    ibmcloud ks 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?

In diesem Abschnitt wird die Logik zur automatischen Priorisierung beschrieben, die zum Einsatz kommt, wenn Worker-Knoten während einer Skalierung nach unten entfernt werden, beispielsweise nach einer Aktualisierung eines Worker-Knotens oder wenn Sie den Befehl ausführen ibmcloud ks worker-pool resize. Sie müssen dieses Verhalten nicht konfigurieren – es erfolgt automatisch.

Wenn die Anzahl der Worker-Knoten in einem Worker-Pool verringert wird, werden die Worker-Knoten anhand verschiedener Eigenschaften – darunter Status, Integrität und Version – priorisiert und anschließend gelöscht.

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 ks 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 Einstellung für die Platzierung 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 IBM Cloud Kubernetes Service-Cluster wird mit Komponenten geliefert, wie 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 separat 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. IBM Cloud Kubernetes Service bietet weitere Plug-ins und Add-ons, aus denen Sie auswählen können, um Ihren Cluster um zusätzliche Funktionen zu erweitern. Beispielsweise können Sie Helm-Diagramme verwenden, um das Block-Speicher-Plugin zu installieren. Oder vielleicht möchten Sie von IBM verwaltete Add-ons in Ihrem Cluster aktivieren. Sie müssen diese Helm-Charts und Add-ons separat aktualisieren, indem Sie die Anweisungen in den Readme-Dateien zu den Helm-Charts befolgen oder die Schritte zum Aktualisieren 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.

Um die folgenden Befehle auszuführen, benötigen Sie die IAM-Plattformzugriffsrolle Administrator IBM Cloud für den Cluster.

Sie können die automatischen Aktualisierungen der Fluentd-Komponente auf folgende Arten verwalten.

  • Überprüfen Sie, ob automatische Aktualisierungen aktiviert sind, indem Sie den Befehl ibmcloud ks logging autoupdate get --cluster CLUSTER ausführen.
  • Deaktivieren Sie automatische Updates, indem Sie den Befehlibmcloud ks 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 ks logging autoupdate enable --cluster CLUSTER
        ```
    * Erzwingen Sie eine einmalige Aktualisierung, wenn Sie einen Protokollierungsbefehl verwenden, der die Option `--force-update` enthält. Ihre Pods werden auf die neueste Version der Fluentd-Komponente aktualisiert, Fluentd wird jedoch künftig nicht mehr automatisch aktualisiert.
            Beispielbefehl
    
    ```sh {: pre}
        ibmcloud ks 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

Add-ons für verwaltete IBM Cloud Kubernetes Service-Cluster bieten eine einfache Möglichkeit, Ihren Cluster um Open-Source-Funktionen wie Istio zu erweitern. 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.