Відкрита зміна: Попередня перевірка оновлення OCP не вдалася через помилку вузла dryrun drain node
Summary: Попередня перевірка оновлення OCP не вдалася через помилку вузла dryrun drain, через те, що деякі віртуальні машини не можуть бути мігровані в реальному режимі або якийсь pod не можна виселити. ...
Acest articol se aplică pentru
Acest articol nu se aplică pentru
Acest articol nu este legat de un produs specific.
Acest articol nu acoperă toate versiunile de produs existente.
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 для отримання додаткової інформації про томи зберігання для дисків віртуальних машин.
Produse afectate
APEX Cloud Platform for Red Hat OpenShiftProprietăți articol
Article Number: 000216907
Article Type: Solution
Ultima modificare: 18 sept. 2026
Version: 4
Găsiți răspunsuri la întrebările dvs. de la alți utilizatori Dell
Servicii de asistență
Verificați dacă dispozitivul dvs. este acoperit de serviciile de asistență.