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.
Feilmeldingen kan inkludere, men ikke begrenset til, følgende scenarier:
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.
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.
2. Klikk på VM og bytt til YAML-fanen.
3. Endre accessModes fra "ReadWriteOnce" til "ReadWriteMany".
4. Hvis PV ikke kan settes til ReadWriteMany (VM-en kan ikke begynne å bruke ReadWriteMany), angir du evictionStrategy fra "LiveMigrate" til "None".
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.
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:
- 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:
- 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.
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.