Aktualisierung von Hosts, die als Worker-Knoten zugewiesen sind

Befolgen Sie die folgenden Schritte, um die neuesten „ OpenShift Container Platform “, Betriebssystem- und Sicherheitspatches für Ihre Hosts zu erhalten, die als Worker-Knoten für „ Satellite “-fähige „ IBM Cloud “-Dienste wie beispielsweise Cluster zugewiesen sind.

Service-Cluster, die die zugrunde liegende Plattform für alle IBM Cloud-Dienste bilden, werden von Diensten wie Code Engine oder IBM Cloud Object Storage erstellt und von IBM verwaltet.

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 Worker-Knoten können sich in einem anderen Worker-Pool befinden, oder, falls Sie über eigenständige Worker-Knoten verfügen, können Anwendungen auf diesen eigenständigen Worker-Knoten eingeplant 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 gleichzeitig heruntergefahren werden?
Wenn alle Workerknoten betriebsbereit sein müssen, ziehen Sie die Zuordnung und Zuordnung zusätzlicher Hosts zu Ihrem Service in Betracht. Sie können Ihrem Standort vorübergehend zusätzliche Hosts hinzufügen und diese nach Abschluss der Aktualisierung entfernen.
Darüber hinaus können Sie eine Kubernetes ( ConfigMap ) erstellen, die die maximale Anzahl von Worker-Knoten festlegt, 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.

Prüfen, ob eine Versionsaktualisierung für Workerknoten-Hosts verfügbar ist

Sie können prüfen, ob eine Versionsaktualisierung für einen Host verfügbar ist, der einem Satellite-fähigen IBM Cloud-Service als Workerknoten zugeordnet ist, indem Sie die Befehlszeilenschnittstelle von IBM Cloud oder die IBM Cloud-Konsole verwenden.

Informationen zum Überprüfen der Änderungen, die in jeder Versionsaktualisierung enthalten sind, finden Sie im Versionsänderungsprotokoll für Red Hat OpenShift on IBM Cloud.

Mit der IBM Cloud-CLI prüfen, ob eine Versionsaktualisierung verfügbar ist

  1. Melden Sie sich bei IBM Cloud an. Fügen Sie die Option --sso hinzu, wenn Sie ein eingebundenes Konto haben.
    ibmcloud login [--sso]
    
  2. Listen Sie die Satellite-Cluster in Ihrem Konto auf.
    ibmcloud ks cluster ls --provider satellite
    
  3. Listen Sie die Workerknoten im Cluster auf, für die Sie die Version aktualisieren möchten. Suchen Sie in der Ausgabe nach einem * mit einer Meldung, die anzeigt, dass eine Versionsaktualisierung verfügbar ist.
    ibmcloud ks worker ls -c CLUSTER_NAME_OR_ID
    
    Beispielausgabe
    ID                Primary IP       Flavor   State    Status   Zone     Version   
    sat-worker-<ID>   <IP_address>     upi      normal   Ready    zone-1   4.5.35_1534_openshift*   
    * To update to 4.5.37_1537_openshift version, run 'ibmcloud ks worker replace'. Review and make any required version changes before you update: 'https://ibm.biz/upworker'
    

Mit der IBM Cloud-Konsole prüfen, ob eine Versionsaktualisierung verfügbar ist

  1. Melden Sie sich an der Satellite-Konsolean.
  2. Klicken Sie auf die Position mit den Hosts, die Sie aktualisieren möchten.
  3. Klicken Sie auf die Registerkarte für Hosts.
  4. Klicken Sie in der Hostliste auf den Link zum Cluster des Hosts, den Sie aktualisieren möchten. Für die Red Hat OpenShift on IBM Cloud Clusterdetails wird ein neues Tab geöffnet.
  5. Klicken Sie auf das Tab Workerknoten .
  6. Achten Sie in der Spalte Version auf ein Informationssymbol, das anzeigt, wenn Update available Sie auf das Symbol klicken. Wenn keine Aktualisierung verfügbar ist, ist kein Symbol vorhanden.
  7. Ermitteln Sie, ob es sich bei der Versionsaktualisierung um die Aktualisierung einer Haupt-, Neben- oder Patchversion handelt.

Workerknotenhosts identifizieren

Bestimmen Sie, ob Ihre Hosts Teil der Steuerebene sind, einem verwalteten Service zugeordnet oder an den Standort angeschlossen sind.

  1. Listen Sie Ihre Standort-Hosts auf und notieren Sie deren IDs. Die Worker-Node-Hosts sind in der Spalte Cluster der Ausgabe nicht aufgeführt infrastructure.

    ibmcloud sat host ls --location <location>
    

    Prüfen Sie die Beispielausgabe.

    Name           ID                     State      Status   Zone     Cluster          Worker ID                                              Worker IP   
    satdemo-cp1    0bc3b92f55968a230985   assigned   Ready    zone-1   infrastructure   sat-satdemocp1-2bda578e901b4047c6e48d766cd99bc11a45fddd   169.62.42.178   
    satdemo-cp2    999cd38c39ddffe4b672   assigned   Ready    zone-2   infrastructure   sat-satdemocp2-940134e69c2609c5421b2426a7640fa80569668d   169.62.42.183   
    satdemo-cp5    6ca4fd8fcad1fa622aa4   assigned   Ready    zone-3   infrastructure   sat-satdemocp5-d46581b509357ea4b429fddc38a18b155463bf1c   169.62.42.181   
    satdemo-cp4    1ac2b92f55968a333335   assigned   Ready    zone-1   satdemo-cluster  sat-satdemocp4-2bda578e901b4047c6e48d766cd99bc11a45fddd   169.62.42.180   
    satdemo-cp6    234cd56c78ddffe4b672   assigned   Ready    zone-2   satdemo-cluster  sat-satdemocp6-940134e69c2609c5421b2426a7640fa80569668d   169.62.42.179   
    satdemo-cp3    8fg4ff8faaa1fa622bb5   assigned   Ready    zone-3   satdemo-cluster  sat-satdemocp3-d46581b509357ea4b429fddc38a18b155463bf1c   169.62.42.182  
    
  2. Listen Sie Ihre aktuellen Hosts auf, die als Workerknoten an Ihren Satellite-fähigen IBM Cloud-Service angehängt sind, und notieren Sie die zugehörigen IDs.

    ibmcloud ks worker ls -c <cluster_name_or_ID>
    

    Prüfen Sie die Beispielausgabe.

    ID                                                        Primary IP     Flavor   State    Status   Zone        Version   
    sat-satellitei-5bd83963cdfedc7668c9040879c88113a134c4e7   10.241.0.4     upi      normal   Ready    us-east-2   4.7.55_1575_openshift   
    sat-satellitei-854beae4556401b5761e34ed849ba64c4b0a674c   10.241.128.4   upi      normal   Ready    us-east-1   4.7.55_1575_openshift   
    sat-satellitei-bf1fc9b135011d5c0d9d500855db6e489d15610b   10.241.64.4    upi      normal   Ready    us-east-3   4.7.55_1575_openshift    
    

Versionsaktualisierungen auf Workerknotenhosts anwenden, ohne sie abzuhängen

Sie können Ihre Workerknotenhosts aktualisieren, ohne sie von der Position abzuhängen. Sie können auch ein rollierendes Update Ihrer Worker-Knoten-Hosts mit einem „ ConfigMap “ durchführen.

Vorbereitende Schritte

  • Überprüfen Sie, ob sich alle Workerknoten in einwandfreiem Zustand befinden.
  • Wenn Sie persistente Blockspeicherdatenträger verwenden, müssen Sie diese Datenträger vom Knoten abhängen, bevor Sie Ihre Aktualisierungen starten. Verschieben Sie die persistenten Datenträger auf einen anderen Workerknoten, für den keine Aktualisierungen erforderlich sind. Verwenden Sie anschließend den Befehl kubectl drain NODENAME, um die Workload vom Workerknoten zu verbinden und zu bereinigen, um sie zu aktualisieren. Wenn Sie die Blockspeicherdatenträger nicht verschieben können, verwenden Sie die Option Versionsaktualisierungen auf Workerknoten anwenden, indem Sie Hosts ersetzen.

Das Installieren von Updates auf Worker-Knoten kann zu Ausfallzeiten Ihrer Anwendungen und Dienste führen. Führen Sie keine Aktionen auf dem Host aus, während der Aktualisierungsprozess ausgeführt wird. Während des Aktualisierungsvorgangs dürfen maximal 20 % aller Worker-Knoten nicht verfügbar sein.

Versionsaktualisierungen nacheinander auf Workerknotenhosts anwenden

  1. Optional: Ordnen Sie dem Service-Cluster und assign zusätzliche Hosts zu, um die Rechenkapazität zu verarbeiten, während Ihre vorhandenen Hosts aktualisiert werden.

  2. Ermitteln Sie Ihre Workerknotenhosts. Auf den Workerknotenhosts ist infrastructure nicht in der Spalte Cluster der Ausgabe aufgelistet, sondern der Name des Clusters.

  3. Aktualisieren Sie Ihre Workerknoten einzeln, indem Sie den Befehl ibmcloud ks worker update ausführen.

    ibmcloud ks worker update -c CLUSTER_NAME_OR_ID --worker WORKER_ID
    
  4. Vergewissern Sie sich, dass die Aktualisierung abgeschlossen wurde, indem Sie die Kubernetes-Version der Workerknoten überprüfen.

    kubectl get nodes
    

    Wenn die Aktualisierung fehlgeschlagen ist, müssen Sie Versionsaktualisierungen anwenden, indem Sie Hosts ersetzen.

Wenden Sie Versionsaktualisierungen auf Ihre Workerknotenhosts mit einer ConfigMap an

Sie können Aktualisierungen für alle Workerknotenhosts mit einer ConfigMaptemporär auslagern. Geben Sie mithilfe von Bezeichnungen an, welche Knoten aktualisiert werden sollen. Sie können auch Folgendes angeben:

  1. Optional: Ordnen Sie dem Service-Cluster und assign zusätzliche Hosts zu, um die Rechenkapazität zu verarbeiten, während Ihre vorhandenen Hosts aktualisiert werden.

  2. Ermitteln Sie Ihre Workerknotenhosts. Ihre Workerknotenhosts werden nicht als Infrastructure aufgelistet.

  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). Sie können die Bezeichnungen verwenden, um anzugeben, welche Workerknoten aktualisiert werden sollen.

    kubectl get nodes -o yaml
    

    Beispielausgabe

    labels:
      arch: amd64
      beta.kubernetes.io/arch: amd64
      beta.kubernetes.io/instance-type: upi
      beta.kubernetes.io/os: linux
      failure-domain.beta.kubernetes.io/region: us-east
      failure-domain.beta.kubernetes.io/zone: us-east-2
      ibm-cloud.kubernetes.io/iaas-provider: upi
      ibm-cloud.kubernetes.io/internal-ip: 10.241.0.4
      ibm-cloud.kubernetes.io/machine-type: upi
      ibm-cloud.kubernetes.io/os: REDHAT_8_64
      ibm-cloud.kubernetes.io/region: us-east
      ibm-cloud.kubernetes.io/worker-id: sat-satellitei-5bd83963cdfedc7668c9040879c88113a134c4e7
      ibm-cloud.kubernetes.io/worker-pool-id: cbtljodw089nltg8k210-9a3f763
      ibm-cloud.kubernetes.io/worker-pool-name: default
      ibm-cloud.kubernetes.io/worker-version: 4.7.59_1583_openshift
      ibm-cloud.kubernetes.io/zone: us-east-2
      kubernetes.io/arch: amd64
      kubernetes.io/hostname: satellite-ibm-host-3
      kubernetes.io/os: linux
      node-role.kubernetes.io/master: ""
      node-role.kubernetes.io/worker: ""
      node.kubernetes.io/instance-type: upi
      node.openshift.io/os_id: rhel
      privateVLAN: "1"
      topology.kubernetes.io/region: us-east
      topology.kubernetes.io/zone: us-east-2
    
  4. Erstellen Sie eine ConfigMap und legen Sie die Regeln für die Nichtverfügbarkeit Ihrer Worker-Knoten fest. Das folgende Beispiel zeigt zwei Schecks, den defaultcheck.json und eine Scheckvorlage. Mit dieser Beispielprüfung können Sie Regeln für alle Workerknoten definieren, die keiner der Prüfungen entsprechen, die Sie in der ConfigMap (defaultcheck.json) definiert haben. Verwenden Sie die Prüfschablone, um Ihre eigene Prüfung zu 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. Definieren Sie bis zu 10 Prüfungen in einem ConfigMap. Wenn Sie weitere Prüfungen hinzufügen, werden sie ignoriert.

    Beispiel

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: ibm-cluster-update-configuration
      namespace: kube-system
    data:
      drain_timeout_seconds: "120"
      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.
    defaultcheck.json
    Wenn Sie Workerknoten in Satellite-Hosts aktualisieren, sind möglicherweise nur 20 Prozent der Workerknoten im Cluster nicht verfügbar.
    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.
    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 ConfigMap erstellt wurde.

    kubectl get configmap --namespace kube-system
    
  7. Aktualisieren Sie die Workerknoten, indem Sie sie nach ID auflisten.

    ibmcloud ks worker update --cluster <cluster_name_or_ID> --worker <worker_node1_ID> --worker <worker_node2_ID>
    
  8. Optional: Überprüfen Sie die von der ConfigMap ausgelösten Ereignisse sowie eventuell auftretende Validierungsfehler. 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
    

    Wenn die Aktualisierung fehlgeschlagen ist, müssen Sie Versionsaktualisierungen anwenden, indem Sie Hosts ersetzen.

  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.

Versionsaktualisierungen durch Ersetzen von Hosts auf Workerknoten anwenden

Hosts, die einem Standort zugeordnet sind, werden nicht automatisch aktualisiert. Um ein Versionsupdate durchzuführen, können Sie zunächst neue Hosts an Ihren Satellite-fähigen IBM Cloud-Dienst anhängen und diesem zuweisen und anschließend die alten Hosts entfernen. Sie können auch Minor-und Patchversionsaktualisierungen an Ort und Stelle anwenden.

  1. Listen Sie Ihre aktuellen Hosts auf und notieren Sie ihre IDs. Diese Hosts müssen entfernt werden, nachdem Sie aktualisierte Hosts zugeordnet haben.

    ibmcloud ks worker ls -c <cluster_name_or_ID>
    

    Prüfen Sie die Beispielausgabe.

    ID                                                        Primary IP      Flavor   State    Status   Zone     Version   
    sat-satliberty-5b4c7f3a7bfc14cf58cbb14ad5c08429475274fe   208.43.36.202   upi      normal   Ready    zone-1   4.7.19_1525_openshift*   
    
  2. Verbinden Sie neue Hosts mit Ihrem Satellite-Standort. Die Anzahl der Hosts, die Sie verbinden, muss mit der Anzahl der Hosts übereinstimmen, die aktualisiert werden sollen.

  3. Weisen Sie die neu verbundenen Hosts Ihrer Satellite-Ressource zu. Diese Hosts erhalten automatisch die Aktualisierung, wenn Sie sie zuweisen.

  4. Nachdem die neuen Hosts erfolgreich Ihrer Satellite-Ressource zugewiesen wurden, entfernen und löschen Sie die alten Hosts, die Sie zuvor notiert haben.

Workerknotenhosts über die Red Hat OpenShift on IBM Cloud-Konsole aktualisieren

Sie können die Workerknotenhosts über die Red Hat OpenShift on IBM Cloud-Konsole aktualisieren.

  1. Melden Sie sich bei der IBM Cloud-Konsole an und klicken Sie auf OpenShift > Clusters.
  2. Klicken Sie auf den Cluster, für den die Hosts, die Sie aktualisieren möchten, zugeordnet sind, und navigieren Sie zu der Seite Workerknoten.
  3. Wählen Sie jeden Host aus, den Sie aktualisieren möchten. Nachdem Sie die Hosts ausgewählt haben, wird eine Option zum Aktualisieren angezeigt.
  4. Klicken Sie auf Aktualisieren. Klicken Sie in dem daraufhin angezeigten Dialogfeld erneut auf Aktualisieren. Es wird eine Nachricht angezeigt, dass die Aktualisierung erfolgreich gestartet wurde.
  5. Warten Sie, während die Hosts aktualisiert werden. Der Aktualisierungsprozess für jeden Host ist abgeschlossen, wenn der Status des Hosts wieder Normal ist und die neue Version in der Spalte Version angezeigt wird.

Ermitteln, ob es sich bei der Versionsaktualisierung des Workerknotens um die Aktualisierung einer Haupt-, Neben- oder Patchversion handelt.

Der Prozess zum Aktualisieren eines Workerknotens ist für alle Aktualisierungstypen identisch. Sie finden jedoch Informationen dazu, ob es sich bei der Aktualisierung um eine übergeordnete, eine untergeordnete oder eine Patchaktualisierung handelt.

Um den verfügbaren Aktualisierungstyp zu ermitteln, vergleichen Sie Ihre aktuellen Workerknotenversionen mit der neuesten worker node fix pack-Version im Versionsänderungsprotokoll für Red Hat OpenShift. Hauptversionsaktualisierungen werden durch die erste Ziffer in der Versionsbezeichnung (4.x.x) angezeigt, Nebenversionsaktualisierungen werden durch die zweite Ziffer (x.7.x) angezeigt und Patchaktualisierungen werden durch die letzten Ziffern angezeigt (x.x.23_1528_openshift). Weitere Informationen zu Versionsaktualisierungen finden Sie unter Versionsinformationen und Aktualisierungsaktionen.