Openshift: OCP-Upgrade-Vorabprüfung ist für Dryrun-Drain-Node-Fehler fehlgeschlagen

Summary: Die Vorabprüfung des OCP-Upgrades ist für einen Dryrun-Drain-Node-Fehler fehlgeschlagen, da einige VMs nicht live migriert werden können oder einige Pods nicht entfernt werden können.

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Symptoms

Während der LCM-Vorabprüfung kann es zu einem Dryrun-Drain-Node-Fehler kommen, der den LCM-Prozess blockiert.
image.png

Die Fehlermeldung kann u. a. die folgenden Szenarien umfassen:
  • Szenario 1: "VMI XXXXXX ist mit einer Räumungsstrategie konfiguriert, kann aber nicht live migriert werden."
  • Szenario 2: "Pod kann nicht geräumt werden, da dies gegen das Unterbrechungsbudget des Pods verstoßen würde."
  • Szenario 3: "Pods xxx" nicht gefunden für Pod:XXXXXXXXXXXXX

Cause

Grundursache für Szenario 1: Die VM ist mit einem RWO-Storage-Volume (ReadWriteOnce) konfiguriert, das nicht live auf den Fehlerberichts-Node migriert werden kann.

Grundursache für Szenario 2: Die Pod-Einstellung "PodDistruptionBudget" wird als "minAvailable" konfiguriert: 1", Dadurch wird der Pod-Leerungsprozess blockiert.

Senario 3 Grundursache: Ein geplanter Openshift-Job startet einen Pod und der Pod wird beendet, nachdem der Job abgeschlossen ist. Es besteht also die Möglichkeit, dass der Pod während der Vorabprüfung des Trockenlaufs zum Entleeren des Node nicht gefunden werden kann.

Resolution

Lösung für Szenario 1

1. Beenden Sie die VM-Instanz, bevor Sie ihre PV-Einstellungen ändern.
image.png

2. Klicken Sie auf die VM und wechseln Sie zur Registerkarte YAML.
image.png
image.png

3. Ändern Sie accessModes von "ReadWriteOnce" in "ReadWriteMany".
image.png

4. Wenn PV nicht auf ReadWriteMany festgelegt werden kann (die VM kann nicht mit ReadWriteMany beginnen), legen Sie evictionStrategy von "LiveMigrate" auf "None" fest.
image.png
Hinweis: Führen Sie entweder Schritt 3 oder 4 aus, der auf Ihre Umgebung zutrifft. Sie müssen nicht beide Schritte ausführen.

5. Klicken Sie auf Speichern und starten Sie die VM neu.
image.png

6. Wiederholen Sie die LCM-Vorabprüfung und fahren Sie mit dem Upgrade fort.
 


Lösung Szenario 2

Führen Sie eines der folgenden Verfahren aus, das für Ihre Umgebung gilt.

Prozedur 1: Löschen Sie manuell den/die Pods, der/die nicht entfernt werden können.
  • Führen Sie den folgenden Befehl aus, um den/die Pod/Pods zu löschen, der/die nicht entfernt werden können, und lassen Sie sie in anderen Nodes neu erstellen.
$ oc delete pod <pod_name> -n <pod_namespace>
  • Wiederholen Sie die LCM-Vorabprüfung und fahren Sie mit dem Upgrade fort.


Prozedur 2: Wenn der Pod nicht manuell gelöscht werden kann, patchen Sie den Pod, dessen "PodDisruptionBudget" als "minAvailable" konfiguriert ist: 1"
  • Führen Sie den folgenden Befehl aus, um den Wert "PodDisruptionBudget" für den Pod zu überprüfen:
Zum Beispiel:
$ oc get pdb <pdb_name> -n <pod_namespace> 
 
NAME         MIN AVAILABLE   MAX UNAVAILABLE   ALLOWED DISRUPTIONS   AGE
<pdb_name>   1               N/A               0                     18h
 
  • Wenn die Befehlsausgabe anzeigt, dass "MIN AVAILABLE" "1" ist, patchen Sie den Wert "minAvailable" von PodDisruptionBudget mit dem folgenden Befehl auf "0".
$ oc patch pdb <pdb_name> -n <pod_namespace> --type=merge -p '{"spec":{"minAvailable":0}}'
  • Wiederholen Sie die LCM-Vorabprüfung und fahren Sie mit dem Upgrade fort.
  • Warten Sie, bis das Upgrade abgeschlossen und die MCO verfügbar ist. Führen Sie den folgenden Befehl aus, um zu überprüfen, ob alles in Ordnung ist.
$ watch -n10 "oc get clusterversion; echo; oc get mcp; echo; oc get nodes -o wide; echo; oc get co"
Zum Beispiel:
image.png
 
  • Stellen Sie nach Abschluss des OCP-Upgrades den Wert "PodDisruptionBudget minAvailable" auf "1" wieder her.
$ oc patch pdb <pdb_name> -n <pod_namespace> --type=merge -p '{"spec":{"minAvailable":1}}'



Prozedur 3: Wenn das Patchen des Pod-Hit-Fehlers "PodDisruptionBudget.policy "<pdb_name>" ungültig ist: Spezifikation: Forbidden: Updates an poddisruptionbudget-Spezifikationen sind verboten.", führen Sie die folgenden Schritte aus, um das Problem zu umgehen.
  • Sichern Sie das PodDisruptionBudget, das mit "minAvailable: 1"
$ oc get pdb <pdb_name> -n <pod_namespace> -o yaml > <pdb_name>_backup.yaml
 
  • Entfernen Sie das PodDisruptionBudget, das mit "minAvailable: 1"
$ oc delete pdb <pdb_name> -n <pod_namespace>
 
  • Wiederholen Sie die LCM-Vorabprüfung und fahren Sie mit dem Upgrade fort.
  • Warten Sie, bis das Upgrade abgeschlossen und die MCO verfügbar ist. Führen Sie den folgenden Befehl aus, um zu überprüfen, ob alles in Ordnung ist.
$ watch -n10 "oc get clusterversion; echo; oc get mcp; echo; oc get nodes -o wide; echo; oc get co"
Zum Beispiel:
image.png
 
  • Stellen Sie nach Abschluss des OCP-Upgrades die yaml-Backupdatei wieder her.
$ oc create -f <pdb_name>_backup.yaml -n <pod_namespace>

 

Lösung von Szenario 3

Führen Sie die LCM-Vorabprüfung einfach erneut aus. Sie sollte dieses Mal erfolgreich sein.

Additional Information

Weitere Informationen zu Storage-Volumes für VM-Festplatten finden Sie im folgenden Openshift-Dokument.

https://access.redhat.com/documentation/en-us/openshift_container_platform/4.13/html/virtualization/about-virt

Affected Products

APEX Cloud Platform for Red Hat OpenShift
Article Properties
Article Number: 000216907
Article Type: Solution
Last Modified: 18 Feb 2026
Version:  3
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.