오픈시프트: 드라이 런 드레인 노드 오류로 인한 OCP 업그레이드 사전 검사 실패

Summary: 일부 VM을 라이브 마이그레이션할 수 없거나 일부 포드를 제거할 수 없기 때문에 드라이런 드레인 노드 오류에 대한 OCP 업그레이드 사전 검사가 실패했습니다.

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

LCM 사전 검사 중에 LCM 프로세스를 차단하는 드라이런 드레인 노드 장애가 발생할 수 있습니다.
image.png

오류 메시지에는 다음 시나리오가 포함될 수 있지만 이에 국한되지는 않습니다.
  • 시나리오 1: "VMI XXXXXX는 제거 전략으로 구성되지만 실시간 마이그레이션이 불가능합니다."
  • 시나리오 2: "포드의 중단 예산을 위반하므로 포드를 내보낼 수 없습니다."
  • 시나리오 3: 포드:xxxxxxxxxxxx에 대한 "포드 xxx"를 찾을 수 없음

Cause

시나리오 1의 근본 원인: VM은 오류 보고 노드에서 실시간 마이그레이션할 수 없는 RWO(ReadWriteOnce) 스토리지 볼륨으로 구성됩니다.

시나리오 2의 근본 원인: 포드 "PodDistruptionBudget" 설정은 "minAvailable: 1", Pod 제거 프로세스를 차단합니다.

Senario 3 근본 원인: Openshift의 예약된 작업은 Pod를 시작하고 작업이 완료된 후 Pod는 종료됩니다. 따라서 사전 검사 드라이 런 드레이닝 노드 단계에서 포드를 찾지 못할 가능성이 있습니다.

Resolution

시나리오 1 해결 방법

1. PV 설정을 변경하기 전에 VM 인스턴스를 중지합니다.
image.png

2. VM을 클릭하고 YAML 탭으로 전환합니다.
image.png
image.png

3. accessModes를 "ReadWriteOnce"에서 "ReadWriteMany"로 변경합니다.
image.png

4. PV를 ReadWriteMany로 설정할 수 없는 경우(VM에서 ReadWriteMany를 사용하여 시작할 수 없음) evictionStrategy를 "LiveMigrate"에서 "None"으로 설정합니다.
image.png
참고: 환경에 적용되는 3단계 또는 4단계를 수행합니다. 두 단계를 모두 수행할 필요는 없습니다.

5. 저장을 클릭하고 VM을 재시작합니다.
image.png

6. LCM 사전 검사를 다시 시도하고 업그레이드를 진행하십시오.
 


시나리오 2 해결 방법

사용자 환경에 적용되는 다음 절차 중 하나를 수행합니다.

절차 1: 제거할 수 없는 포드를 수동으로 삭제합니다.
  • 아래 명령을 실행하여 제거할 수 없는 Pod/Pod를 삭제하고 다른 노드에서 다시 생성하도록 합니다.
$ oc delete pod <pod_name> -n <pod_namespace>
  • LCM 사전 검사를 다시 시도하고 업그레이드를 진행하십시오.


절차 2: 포드를 수동으로 삭제할 수 없는 경우 "PodDisruptionBudget"이 "minAvailable: 1"
  • 아래 명령을 실행하여 Pod "PodDisruptionBudget" 값을 확인합니다.
예:
$ oc get pdb <pdb_name> -n <pod_namespace> 
 
NAME         MIN AVAILABLE   MAX UNAVAILABLE   ALLOWED DISRUPTIONS   AGE
<pdb_name>   1               N/A               0                     18h
 
  • 명령 출력에 "MIN AVAILABLE"이 "1"로 표시되면, 아래 명령으로 PodDisruptionBudget minAvailable 값을 "0"으로 패치한다.
$ oc patch pdb <pdb_name> -n <pod_namespace> --type=merge -p '{"spec":{"minAvailable":0}}'
  • LCM 사전 검사를 다시 시도하고 업그레이드를 진행하십시오.
  • 업그레이드가 완료되고 MCO를 사용할 수 있을 때까지 기다렸다가 아래 명령을 실행하여 모든 것이 정상인지 확인합니다.
$ watch -n10 "oc get clusterversion; echo; oc get mcp; echo; oc get nodes -o wide; echo; oc get co"
예:
image.png
 
  • OCP 업그레이드가 완료되면 PodDisruptionBudget minAvailable 값을 "1"로 복원합니다.
$ oc patch pdb <pdb_name> -n <pod_namespace> --type=merge -p '{"spec":{"minAvailable":1}}'



절차 3: "PodDisruptionBudget.policy "<pdb_name>" is invalid 패치를 적용하는 경우: spec: Forbidden: poddisruptionbudget spec에 대한 업데이트가 금지됩니다.", 아래 단계에 따라 해결하십시오.
  • "minAvailable: 1"
$ oc get pdb <pdb_name> -n <pod_namespace> -o yaml > <pdb_name>_backup.yaml
 
  • "minAvailable: 1"
$ oc delete pdb <pdb_name> -n <pod_namespace>
 
  • LCM 사전 검사를 다시 시도하고 업그레이드를 진행하십시오.
  • 업그레이드가 완료되고 MCO를 사용할 수 있을 때까지 기다렸다가 아래 명령을 실행하여 모든 것이 정상인지 확인합니다.
$ watch -n10 "oc get clusterversion; echo; oc get mcp; echo; oc get nodes -o wide; echo; oc get co"
예:
image.png
 
  • OCP 업그레이드가 완료되면 백업 yaml 파일을 복원합니다.
$ oc create -f <pdb_name>_backup.yaml -n <pod_namespace>

 

시나리오 3 해결 방법

LCM 사전 검사를 다시 시도하면 됩니다. 이번에 통과해야 합니다.

Additional Information

가상 머신 디스크의 스토리지 볼륨에 대한 자세한 내용은 아래의 Openshift 문서를 참조하십시오.

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.