Öppet skift: Förkontroll av OCP-uppgradering misslyckades på grund av torrkörningsnodfel

Summary: OCP-uppgraderingsförkontroll misslyckades för torrkörningsnodfel på grund av att vissa virtuella datorer inte kan direktmigreras eller att vissa poddar inte kan avlägsnas.

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

Under LCM-förkontrollen kan det uppstå ett torrkörningsfel på dräneringsnoden, vilket blockerar LCM-processen.
image.png

Felmeddelandet kan innehålla men inte begränsat till följande scenarier:
  • Scenario 1: "VMI XXXXXX är konfigurerat med en borttagningsstrategi men kan inte migreras live."
  • Scenario 2: "Det går inte att vräka podden eftersom den skulle bryta mot poddens störningsbudget."
  • Scenario 3: "pods xxx" hittades inte för POD:xxxxxxxxxxxx

Cause

Scenario 1 – rotororsak: Den virtuella datorn konfigureras med ReadWriteOnce-lagringsvolymen (RWO) som inte kan direktmigreras på felrapporteringsnoden.

Rotorsak till scenario 2: Inställningen "PodDistruptionBudget" för podden är konfigurerad som "minAvailable: 1", Det blockerar borttagningsprocessen för poddar.

Grundorsaken till Senario 3: Det schemalagda Openshift-jobbet startar en podd och podden avslutas när jobbet har slutförts. Så det finns en risk att podden inte kan hittas under förkontrollen av torrkörningstömningsnoden.

Resolution

Scenario 1-lösning

1. Stoppa VM-instansen innan du ändrar dess PV-inställningar.
image.png

2. Klicka på den virtuella datorn och växla till YAML-fliken.
image.png
image.png

3. Ändra accessModes från "ReadWriteOnce" till "ReadWriteMany".
image.png

4. Om PV inte kan anges till ReadWriteMany (den virtuella datorn kan inte börja använda ReadWriteMany) anger du evictionStrategy från "LiveMigrate" till "None".
image.png
Observera: Utför antingen steg 3 eller 4 som gäller för din miljö, du behöver inte utföra båda stegen.

5. Klicka på Spara och starta om den virtuella datorn.
image.png

6. Gör en ny LCM-förkontroll och fortsätt med uppgraderingen.
 


Scenario 2-lösning

Utför någon av följande procedurer som gäller för din miljö.

Förfarande 1: Ta bort de poddar som inte kan avlägsnas manuellt.
  • Kör kommandot nedan för att ta bort de poddar som inte kan avlägsnas och låt dem återskapas i olika noder.
$ oc delete pod <pod_name> -n <pod_namespace>
  • Gör en ny LCM-förkontroll och fortsätt med uppgraderingen.


Förfarande 2: Om podden inte kan tas bort manuellt korrigerar du podden vars "PodDisruptionBudget" har konfigurerats som "minAvailable: 1"
  • Kör kommandot nedan för att kontrollera värdet för podden "PodDisruptionBudget"
Till exempel:
$ oc get pdb <pdb_name> -n <pod_namespace> 
 
NAME         MIN AVAILABLE   MAX UNAVAILABLE   ALLOWED DISRUPTIONS   AGE
<pdb_name>   1               N/A               0                     18h
 
  • Om kommandoutdata visar att "MIN AVAILABLE" är "1" korrigerar du PodDisruptionBudget minAvailable-värdet till "0" med kommandot nedan.
$ oc patch pdb <pdb_name> -n <pod_namespace> --type=merge -p '{"spec":{"minAvailable":0}}'
  • Gör en ny LCM-förkontroll och fortsätt med uppgraderingen.
  • Vänta tills uppgraderingen är klar och MCO är tillgänglig. Kör kommandot nedan för att kontrollera att allt är bra.
$ watch -n10 "oc get clusterversion; echo; oc get mcp; echo; oc get nodes -o wide; echo; oc get co"
Till exempel:
image.png
 
  • När OCP-uppgraderingen har slutförts återställer du värdet PodDisruptionBudget minAvailable till "1"
$ oc patch pdb <pdb_name> -n <pod_namespace> --type=merge -p '{"spec":{"minAvailable":1}}'



Förfarande 3: Om korrigeringen av poddträfffelet "PodDisruptionBudget.policy "<pdb_name>" är ogiltig: spec: Förbjudet: uppdateringar av poddisruptionbudget-specifikationen är förbjudna.", följ stegen nedan för att kringgå problemet.
  • Säkerhetskopiera PodDisruptionBudget som är konfigurerad med "minAvailable: 1"
$ oc get pdb <pdb_name> -n <pod_namespace> -o yaml > <pdb_name>_backup.yaml
 
  • Ta bort PodDisruptionBudget som har konfigurerats med "minAvailable: 1"
$ oc delete pdb <pdb_name> -n <pod_namespace>
 
  • Gör en ny LCM-förkontroll och fortsätt med uppgraderingen.
  • Vänta tills uppgraderingen är klar och MCO är tillgänglig. Kör kommandot nedan för att kontrollera att allt är bra.
$ watch -n10 "oc get clusterversion; echo; oc get mcp; echo; oc get nodes -o wide; echo; oc get co"
Till exempel:
image.png
 
  • När OCP-uppgraderingen är klar återställer du yaml-säkerhetskopian.
$ oc create -f <pdb_name>_backup.yaml -n <pod_namespace>

 

Scenario 3-lösning

Försök helt enkelt att kontrollera LCM igen, det bör klara den här gången.

Additional Information

Se OpenShift-dokumentet nedan för mer information om lagringsvolymer för virtuella datordiskar.

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 Sept 2026
Version:  4
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.