Openshift: ドライラン ドレイン ノード エラーのために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プロセスがブロックされる可能性があります。
エラー メッセージには、次のシナリオが含まれますが、これらに限定されません。
エラー メッセージには、次のシナリオが含まれますが、これらに限定されません。
- シナリオ1:「VMI XXXXXXは削除戦略で構成されていますが、ライブ移行可能ではありません。」
- シナリオ2:「ポッドを立ち退かせることはできません。ポッドのディスラプション予算に違反するためです。」
- シナリオ3:pod: xxxxxxxxxxxxの「pods xxx」が見つかりません
Cause
シナリオ1の根本原因: VMがReadWriteOnce (RWO)ストレージ ボリュームで構成されており、エラー報告ノードでライブ マイグレーションできません。
シナリオ2の根本原因: ポッドの「PodDistruptionBudget」設定は「minAvailable: 1", ポッドの削除プロセスがブロックされます
Senario 3の根本的な原因: OpenShiftのスケジュール済みジョブはPodを開始し、ジョブの完了後にPodが終了します。そのため、事前チェックのドライランでノードをドレインするステップ中にポッドが見つからない可能性があります。
シナリオ2の根本原因: ポッドの「PodDistruptionBudget」設定は「minAvailable: 1", ポッドの削除プロセスがブロックされます
Senario 3の根本的な原因: OpenShiftのスケジュール済みジョブはPodを開始し、ジョブの完了後にPodが終了します。そのため、事前チェックのドライランでノードをドレインするステップ中にポッドが見つからない可能性があります。
Resolution
シナリオ 1 の解決
1.PV設定を変更する前に、VMインスタンスを停止します。
2.VMをクリックし、[YAML]タブに切り替えます
3.accessModes を "ReadWriteOnce" から "ReadWriteMany" に変更します
4.PVをReadWriteManyに設定できない(VMがReadWriteManyの使用を開始できない)場合は、evictionStrategyを「LiveMigrate」から「None」に設定します
メモ:ご使用の環境に適用される手順3または4のいずれかを実行してください。両方の手順を実行する必要はありません
5.[Save]をクリックして、VMを再起動します。
6.LCM事前チェックを再試行してアップグレードを続行してください。
シナリオ2の解決方法
ご使用の環境に適用される次のいずれかの手順を実行します
手順1: 削除できないポッドを手動で削除します。
- 次のコマンドを実行して、削除できないポッドを削除し、異なるノードに再作成します。
$ 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"
例:
- OCPのアップグレードが完了したら、PodDisruptionBudget minAvailableの値を「1」に戻します。
$ oc patch pdb <pdb_name> -n <pod_namespace> --type=merge -p '{"spec":{"minAvailable":1}}'
手順3: Podにパッチを適用すると、「PodDisruptionBudget.policy "<pdb_name>"」というエラーが発生した場合は、仕様: 禁止: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"
例:
- OCPのアップグレードが完了したら、バックアップyamlファイルをリストアします。
$ oc create -f <pdb_name>_backup.yaml -n <pod_namespace>
シナリオ 3 の解決
LCM事前チェックを再試行するだけで、今回は合格するはずです。
Additional Information
仮想マシン ディスクのストレージ ボリュームの詳細については、以下のOpenShiftドキュメントを確認してください。
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.