Відкрита зміна: Попередня перевірка оновлення OCP не вдалася через помилку вузла dryrun drain node
Summary: Попередня перевірка оновлення OCP не вдалася через помилку вузла dryrun drain, через те, що деякі віртуальні машини не можуть бути мігровані в реальному режимі або якийсь pod не можна виселити. ...
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: "pods xxx" не знайдено для pod:xxxxxxxxxxxx
Cause
Першопричина сценарію 1: Віртуальна машина налаштована з обсягом зберігання ReadWriteOnce(RWO), який не можна мігрувати в реальному режимі на вузол повідомлення про помилки.
Корінь другого сценарію: Налаштування поду "PodDistruptionBudget" налаштоване як "minAvailable: 1", Це заблокує процес
виселення капсул.Корінь Senario 3: Відкрита графікова робота запускає капсулу, яку припиняють після завершення роботи. Тож є ймовірність, що капсула не буде знайдена під час етапу дренажу вузла precheck dryrun.
Корінь другого сценарію: Налаштування поду "PodDistruptionBudget" налаштоване як "minAvailable: 1", Це заблокує процес
виселення капсул.Корінь Senario 3: Відкрита графікова робота запускає капсулу, яку припиняють після завершення роботи. Тож є ймовірність, що капсула не буде знайдена під час етапу дренажу вузла precheck dryrun.
Resolution
Розв'язання сценарію 1
1. Зупиніть екземпляр віртуальної машини перед зміною налаштувань
PV.2. Натисніть віртуальну машину і перейдіть на вкладку YAML.
3. Змініть accessModes з "ReadWriteOnce" на "ReadWriteMany".
4. Якщо PV не можна встановити на ReadWriteMany (віртуальна машина не може запускатися за допомогою ReadWriteMany), встановіть evictionStrategy з "LiveMigrate" на "None".
Примітка: Будь ласка, виконайте крок 3 або 4, який застосовується до вашого середовища, не обов'язково виконувати обидва кроки.
5. Натисніть зберегти і перезапустити віртуальну машину.
6. Спробуйте повторити LCM precheck і продовжуйте оновлення.
Розв'язання сценарію 2
Виконайте одну з наступних процедур, що стосується вашого середовища.
Процедура 1: Вручну видаляйте капсули/капсули, які не можна виселити.
- Запустіть команду нижче, щоб видалити поди/поди, які не можна виселити, і дозвольте їм відтворитися в різних вузлах.
$ oc delete pod <pod_name> -n <pod_namespace>
- Спробуйте повторити LCM precheck і продовжуйте оновлення.
Процедура 2: Якщо pod неможливо видалити вручну, виправте той под, у якого "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 precheck і продовжуйте оновлення.
- Почекай, поки оновлення буде завершено і 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: Якщо патчання помилки "PodDisruptionBudget.policy "<pdb_name>" є недійсним: spec: Заборонено: оновлення специфікації poddisruptionbudget заборонені.", дотримуйтесь нижче кроків для обходу.
- Резервне копіювання PodDisruptionBudget, який налаштований за допомогою "minAvailable: 1"
$ oc get pdb <pdb_name> -n <pod_namespace> -o yaml > <pdb_name>_backup.yaml
- Видаліть PodDisruptionBudget, який налаштований на "minAvailable: 1"
$ oc delete pdb <pdb_name> -n <pod_namespace>
- Спробуйте повторити LCM precheck і продовжуйте оновлення.
- Почекай, поки оновлення буде завершено і 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 precheck, цього разу вона має пройти.
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.