Openshift: Voorcontrole van OCP-upgrade mislukt voor fout met afvoerknooppunt dryrun

Summary: Voorcontrole van OCP-upgrade is mislukt voor fout met dryrun-afvoerknooppunt, omdat een VM niet live kan worden gemigreerd of sommige pods niet kunnen worden uitgezet.

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

Tijdens de voorcontrole van LCM kan er een fout optreden in een dryrun-afvoerknooppunt waardoor het LCM-proces wordt geblokkeerd.
image.png

De foutmelding kan de volgende scenario's bevatten, maar is niet beperkt tot de volgende scenario's:
  • Scenario 1: "VMI XXXXXX is geconfigureerd met een ontruimingsstrategie, maar is niet live-migreerbaar."
  • Scenario 2: "Kan pod niet uitzetten omdat dit het verstoringsbudget van de pod zou schenden."
  • Scenario 3: "Pods xxx" niet gevonden voor pod:xxxxxxxxxxxx

Cause

Hoofdoorzaak scenario 1: De VM is geconfigureerd met een ReadWriteOnce (RWO)-storagevolume dat niet live kan worden gemigreerd op het foutrapportageknooppunt.

Scenario 2 hoofdoorzaak: De instelling van de pod "PodDistruptionBudget" is geconfigureerd als "minAvailable: 1", Het blokkeert het uitzettingsproces van de pod.

Senario 3 hoofdoorzaak: De geplande OpenShift-taak start een pod en de pod wordt beëindigd nadat de taak is voltooid. Er is dus een kans dat de pod niet gevonden kan worden tijdens de precheck dryrun drain node stap.

Resolution

Scenario 1 oplossen

1. Stop de VM-instantie voordat u de PV-instellingen wijzigt.
image.png

2. Klik op de VM en ga naar het tabblad YAML.
image.png
image.png

3. Wijzig accessModes van "ReadWriteOnce" in "ReadWriteMany".
image.png

4. Als PV niet kan worden ingesteld op ReadWriteMany (de VM kan ReadWriteMany niet starten), stelt u evictionStrategy in van "LiveMigrate" op "None".
image.png
Opmerking: Voer stap 3 of 4 uit die van toepassing is op uw omgeving. U hoeft niet beide stappen uit te voeren.

5. Klik op Save en start de virtuele machine opnieuw.
image.png

6. Voer de LCM voorcontrole opnieuw uit en ga verder met de upgrade.
 


Scenario 2 oplossen

Voer een van de volgende procedures uit die van toepassing zijn op uw omgeving.

Procedure 1: Verwijder handmatig de pod(s) die niet kunnen worden verwijderd.
  • Voer de onderstaande opdracht uit om de pod(s) te verwijderen die niet kunnen worden verwijderd en laat ze opnieuw maken in verschillende knooppunten.
$ oc delete pod <pod_name> -n <pod_namespace>
  • Voer de LCM voorcontrole opnieuw uit en ga verder met de upgrade.


Procedure 2: Als de pod niet handmatig kan worden verwijderd, patcht u de pod waarvan "PodDisruptionBudget" is geconfigureerd als "minAvailable: 1"
  • Voer de onderstaande opdracht uit om de waarde van de pod "PodDisruptionBudget" te controleren
Bijvoorbeeld:
$ oc get pdb <pdb_name> -n <pod_namespace> 
 
NAME         MIN AVAILABLE   MAX UNAVAILABLE   ALLOWED DISRUPTIONS   AGE
<pdb_name>   1               N/A               0                     18h
 
  • Als uit de uitvoer van de opdracht blijkt dat "MIN AVAILABLE" "1" is, patcht u de waarde PodDisruptionBudget minAvailable naar "0" met de onderstaande opdracht.
$ oc patch pdb <pdb_name> -n <pod_namespace> --type=merge -p '{"spec":{"minAvailable":0}}'
  • Voer de LCM voorcontrole opnieuw uit en ga verder met de upgrade.
  • Wacht tot de upgrade is voltooid en de MCO beschikbaar is. Voer de onderstaande opdracht uit om te controleren of alles in orde is.
$ watch -n10 "oc get clusterversion; echo; oc get mcp; echo; oc get nodes -o wide; echo; oc get co"
Bijvoorbeeld:
image.png
 
  • Nadat de OCP-upgrade is voltooid, herstelt u de PodDisruptionBudget minAvailable waarde naar "1"
$ oc patch pdb <pdb_name> -n <pod_namespace> --type=merge -p '{"spec":{"minAvailable":1}}'



Procedure 3: Als het patchen van de pod-hit fout "PodDisruptionBudget.policy "<pdb_name>" ongeldig is: spec: Verboden: updates voor poddisruptionbudget-specificatie zijn verboden.", volg de onderstaande stappen om het probleem op te lossen.
  • Maak een back-up van de PodDisruptionBudget die is geconfigureerd met "minAvailable: 1"
$ oc get pdb <pdb_name> -n <pod_namespace> -o yaml > <pdb_name>_backup.yaml
 
  • Verwijder het PodDisruptionBudget dat is geconfigureerd met "minAvailable: 1"
$ oc delete pdb <pdb_name> -n <pod_namespace>
 
  • Voer de LCM voorcontrole opnieuw uit en ga verder met de upgrade.
  • Wacht tot de upgrade is voltooid en de MCO beschikbaar is. Voer de onderstaande opdracht uit om te controleren of alles in orde is.
$ watch -n10 "oc get clusterversion; echo; oc get mcp; echo; oc get nodes -o wide; echo; oc get co"
Bijvoorbeeld:
image.png
 
  • Nadat de OCP-upgrade is voltooid, zet u het back-up van het yaml-bestand terug.
$ oc create -f <pdb_name>_backup.yaml -n <pod_namespace>

 

Scenario 3 oplossen

Voer de LCM-precheck opnieuw uit. Het zou deze keer moeten slagen.

Additional Information

Raadpleeg onderstaand Openshift-document voor meer informatie over storagevolumes voor virtuele machineschijven.

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.