Openshift: Voorcontrole van OCP-upgrade mislukt voor fout met afvoerknooppunt dryrun
Samenvatting: 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.
Dit artikel is van toepassing op
Dit artikel is niet van toepassing op
Dit artikel is niet gebonden aan een specifiek product.
Niet alle productversies worden in dit artikel vermeld.
Symptomen
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
Oorzaak
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.
Oplossing
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.
Extra informatie
Raadpleeg onderstaand Openshift-document voor meer informatie over storagevolumes voor virtuele machineschijven.
Getroffen producten
APEX Cloud Platform for Red Hat OpenShiftArtikeleigenschappen
Artikelnummer: 000216907
Artikeltype: Solution
Laatst aangepast: 18 sep. 2026
Versie: 4
Vind antwoorden op uw vragen via andere Dell gebruikers
Support Services
Controleer of uw apparaat wordt gedekt door Support Services.