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
- Melden Sie sich bei IBM Cloud an. Fügen Sie die Option
--ssohinzu, wenn Sie ein eingebundenes Konto haben.ibmcloud login [--sso] - Listen Sie die Satellite-Cluster in Ihrem Konto auf.
ibmcloud ks cluster ls --provider satellite - 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.
Beispielausgabeibmcloud ks worker ls -c CLUSTER_NAME_OR_IDID 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
- Melden Sie sich an der Satellite-Konsolean.
- Klicken Sie auf die Position mit den Hosts, die Sie aktualisieren möchten.
- Klicken Sie auf die Registerkarte für Hosts.
- 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.
- Klicken Sie auf das Tab Workerknoten .
- Achten Sie in der Spalte Version auf ein Informationssymbol, das anzeigt, wenn
Update availableSie auf das Symbol klicken. Wenn keine Aktualisierung verfügbar ist, ist kein Symbol vorhanden. - 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.
-
Listen Sie Ihre Standort-Hosts auf und notieren Sie deren IDs. Die Worker-Node-Hosts sind in der Spalte
Clusterder Ausgabe nicht aufgeführtinfrastructure.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 -
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
-
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.
-
Ermitteln Sie Ihre Workerknotenhosts. Auf den Workerknotenhosts ist
infrastructurenicht in der SpalteClusterder Ausgabe aufgelistet, sondern der Name des Clusters. -
Aktualisieren Sie Ihre Workerknoten einzeln, indem Sie den Befehl
ibmcloud ks worker updateausführen.ibmcloud ks worker update -c CLUSTER_NAME_OR_ID --worker WORKER_ID -
Vergewissern Sie sich, dass die Aktualisierung abgeschlossen wurde, indem Sie die Kubernetes-Version der Workerknoten überprüfen.
kubectl get nodesWenn 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:
-
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.
-
Ermitteln Sie Ihre Workerknotenhosts. Ihre Workerknotenhosts werden nicht als
Infrastructureaufgelistet. -
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 yamlBeispielausgabe
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 -
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.jsonund 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
NodeSelectorKeyundNodeSelectorValuefestlegen. 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.
-
Erstellen Sie die Konfigurationszuordnung in Ihrem Cluster.
kubectl apply -f <filepath/configmap.yaml> -
Stellen Sie sicher, dass die ConfigMap erstellt wurde.
kubectl get configmap --namespace kube-system -
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> -
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 -
Vergewissern Sie sich, dass die Aktualisierung abgeschlossen wurde, indem Sie die Kubernetes-Version der Workerknoten überprüfen.
kubectl get nodesWenn die Aktualisierung fehlgeschlagen ist, müssen Sie Versionsaktualisierungen anwenden, indem Sie Hosts ersetzen.
-
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
NotReadyaufgelistet. 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.
-
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* -
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.
-
Weisen Sie die neu verbundenen Hosts Ihrer Satellite-Ressource zu. Diese Hosts erhalten automatisch die Aktualisierung, wenn Sie sie zuweisen.
-
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.
- Melden Sie sich bei der IBM Cloud-Konsole an und klicken Sie auf OpenShift > Clusters.
- Klicken Sie auf den Cluster, für den die Hosts, die Sie aktualisieren möchten, zugeordnet sind, und navigieren Sie zu der Seite Workerknoten.
- Wählen Sie jeden Host aus, den Sie aktualisieren möchten. Nachdem Sie die Hosts ausgewählt haben, wird eine Option zum Aktualisieren angezeigt.
- 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.
- 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.