OpenShift: Forhåndskontroll av OCP-oppgradering mislyktes på grunn av feil på dryrun drain node

Summary: OCP-oppgraderingsforhåndskontroll mislyktes for dryrun drain node-feil, på grunn av at noen VM ikke kan migreres live, eller at noen pod ikke kan kastes ut.

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-forhåndskontrollen kan det oppstå en feil på tørrløpsavløpsnoden som blokkerer LCM-prosessen.
image.png

Feilmeldingen kan inkludere, men ikke begrenset til, følgende scenarier:
  • Scenario 1: "VMI XXXXXX er konfigurert med en utkastelsesstrategi, men er ikke live-migratable."
  • Scenario 2: – Kan ikke kaste ut podden, da det vil være i strid med poddens avbruddsbudsjett
  • Scenario 3: "Pods xxx" ikke funnet for pod:xxxxxxxxxxxx

Cause

Rotårsak for scenario 1: VM-en er konfigurert med ReadWriteOnce-lagringsvolum (RWO) som ikke kan overføres live på feilrapporteringsnoden.

Rotårsak til scenario 2: Innstillingen "PodDistruptionBudget" er konfigurert som "minAvailable: 1", Det vil blokkere POD-utkastelsesprosessen.

Senario 3 root årsak: Openshift planlagt jobb vil starte en pod og poden er avsluttet etter at jobben er fullført. Så det er en sjanse for at poden ikke kan bli funnet under precheck dryrun drenering node trinn.

Resolution

Løsning for scenario 1

1. Stopp VM-forekomsten før du endrer PV-innstillingene.
image.png

2. Klikk på VM og bytt til YAML-fanen.
image.png
image.png

3. Endre accessModes fra "ReadWriteOnce" til "ReadWriteMany".
image.png

4. Hvis PV ikke kan settes til ReadWriteMany (VM-en kan ikke begynne å bruke ReadWriteMany), angir du evictionStrategy fra "LiveMigrate" til "None".
image.png
Merk: Utfør enten trinn 3 eller 4 som gjelder for miljøet ditt, og du trenger ikke å utføre begge trinnene.

5. Klikk på lagre og start VM-en på nytt.
image.png

6. Prøv LCM-forhåndskontrollen på nytt, og fortsett oppgraderingen.
 


Løsning for scenario 2

Utfør en av følgende prosedyrer som gjelder for miljøet ditt.

Fremgangsmåte 1: Slett poden / pods manuelt som ikke kan kastes ut.
  • Kjør under kommandoen for å slette pod / pods som ikke kan kastes ut, og la dem gjenopprette i forskjellige noder.
$ oc delete pod <pod_name> -n <pod_namespace>
  • Prøv LCM-forhåndskontrollen på nytt, og fortsett oppgraderingen.


Fremgangsmåte 2: Hvis poden ikke kan slettes manuelt, patch pod hvis "PodDisruptionBudget" er konfigurert som "minAvailable: 1"
  • Kjør under kommandoen for å sjekke poden "PodDisruptionBudget" verdi
Eksempel:
$ oc get pdb <pdb_name> -n <pod_namespace> 
 
NAME         MIN AVAILABLE   MAX UNAVAILABLE   ALLOWED DISRUPTIONS   AGE
<pdb_name>   1               N/A               0                     18h
 
  • Hvis kommandoutdataene viser at "MIN AVAILABLE" er "1", oppdaterer du PodDisruptionBudget minAvailable-verdien til "0" med kommandoen nedenfor.
$ oc patch pdb <pdb_name> -n <pod_namespace> --type=merge -p '{"spec":{"minAvailable":0}}'
  • Prøv LCM-forhåndskontrollen på nytt, og fortsett oppgraderingen.
  • Vent til oppgraderingen er fullført og MCO er tilgjengelig, kjør under kommandoen for å sjekke at alt er bra.
$ watch -n10 "oc get clusterversion; echo; oc get mcp; echo; oc get nodes -o wide; echo; oc get co"
Eksempel:
image.png
 
  • Når OCP-oppgraderingen er fullført, gjenoppretter du verdien PodDisruptionBudget minAvailable til "1"
$ oc patch pdb <pdb_name> -n <pod_namespace> --type=merge -p '{"spec":{"minAvailable":1}}'



Fremgangsmåte 3: Hvis oppdateringen av pod-trefffeilen «PodDisruptionBudget.policy»< «pdb_name>» er ugyldig: spec: Forbudt: oppdateringer av poddisruptionbudget-spesifikasjoner er forbudt.", Følg trinnene nedenfor for å omgå.
  • Ta sikkerhetskopi av PodDisruptionBudget, som er konfigurert med "minAvailable: 1"
$ oc get pdb <pdb_name> -n <pod_namespace> -o yaml > <pdb_name>_backup.yaml
 
  • Fjern PodDisruptionBudget som er konfigurert med "minAvailable: 1"
$ oc delete pdb <pdb_name> -n <pod_namespace>
 
  • Prøv LCM-forhåndskontrollen på nytt, og fortsett oppgraderingen.
  • Vent til oppgraderingen er fullført og MCO er tilgjengelig, kjør under kommandoen for å sjekke at alt er bra.
$ watch -n10 "oc get clusterversion; echo; oc get mcp; echo; oc get nodes -o wide; echo; oc get co"
Eksempel:
image.png
 
  • Når OCP-oppgraderingen er fullført, gjenoppretter du yaml-sikkerhetskopifilen.
$ oc create -f <pdb_name>_backup.yaml -n <pod_namespace>

 

Løsning for scenario 3

Bare prøv LCM-forhåndssjekk på nytt, den skal passere denne gangen.

Additional Information

Se Openshift-dokumentet nedenfor hvis du vil ha mer informasjon om lagringsvolumer for virtuelle maskindisker.

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.