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.
De foutmelding kan de volgende scenario's bevatten, maar is niet beperkt tot de volgende scenario's:
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.
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.
2. Klik op de VM en ga naar het tabblad YAML.
3. Wijzig accessModes van "ReadWriteOnce" in "ReadWriteMany".
4. Als PV niet kan worden ingesteld op ReadWriteMany (de VM kan ReadWriteMany niet starten), stelt u evictionStrategy in van "LiveMigrate" op "None".
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.
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:
- 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:
- 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.
Affected Products
APEX Cloud Platform for Red Hat OpenShiftArticle 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.