Менеджер PowerFlex: Оновлення RKE2 неодноразово не вдається оновити через помилку «405 Не дозволено»
Summary: Менеджер PowerFlex: Оновлення RKE2 неодноразово зазнає невдачі через помилку «405 Not Allowed» під час створення корисного навантаження оновлення Під час оновлення PowerFlex Management Platform (PFMP) процес неодноразово зазнає невдачі, зациклюючись на етапі створення папки корисного навантаження оновлення в http-share. Збій відбувається з помилкою HTTP 405 Not Allowed (Не дозволено). ...
Symptoms
Версія, що зазнала впливу:
Технологія Powerflex Manager 4.x
Коли користувач виконує оновлення RKE2 у рамках оновлення PFMP, виникають такі симптоми:
- Процес оновлення постійно завантажує пакет, але зазнає невдачі на етапі створення корисного навантаження.
- Колоди з
alcmpod показує помилку '405 Not Allowed' під час спроби створити папку корисного навантаження оновлення в http-share2024-11-30T06:37:50.452413347-06:00 stdout F 2024-11-30 12:37:50 [pool-2-thread-1] (UpgradePFMP.java:168) [INFO] Starting PFMP upgrade .. 2024-11-30T06:49:06.712045703-06:00 stdout F 2024-11-30 12:49:06 [pool-2-thread-1] (UpgradePFMP.java:718) [DEBUG] PFMP Bundle download progress 100% .. 2024-11-30T06:53:47.628162548-06:00 stdout F 2024-11-30 12:53:47 [pool-2-thread-1] (UpgradePFMP.java:1681) [INFO] Current RKE2 version: 1.25.3 2024-11-30T06:53:47.629703367-06:00 stdout F 2024-11-30 12:53:47 [pool-2-thread-1] (UpgradePFMP.java:1688) [INFO] Available RKE2 version: 1.26.13 ... 024-11-30T06:54:02.071950984-06:00 stdout F 2024-11-30 12:54:02 [pool-2-thread-1] (ExecuteSystemCommands.java:106) [DEBUG] Moving RKE2 artifacts to upgrade-artifacts folder . . . 2024-11-30T06:54:02.344803044-06:00 stdout F 2024-11-30 12:54:02 [pool-2-thread-1] (ExecuteSystemCommands.java:106) [DEBUG] /opt/Dell/ASM/temp/upgrade853246658060560317/Upgrade/prepare-upgrade.sh: line 264: kubectl: command not found 2024-11-30T06:54:02.368496491-06:00 stdout F 2024-11-30 12:54:02 [pool-2-thread-1] (ExecuteSystemCommands.java:106) [DEBUG] Creating upgrade payload folder in http-share . . .<html> 2024-11-30T06:54:02.368527723-06:00 stdout F 2024-11-30 12:54:02 [pool-2-thread-1] (ExecuteSystemCommands.java:106) [DEBUG] <head><title>405 Not Allowed</title></head> 2024-11-30T06:54:02.368533448-06:00 stdout F 2024-11-30 12:54:02 [pool-2-thread-1] (ExecuteSystemCommands.java:106) [DEBUG] <body> 2024-11-30T06:54:02.368548798-06:00 stdout F 2024-11-30 12:54:02 [pool-2-thread-1] (ExecuteSystemCommands.java:106) [DEBUG] <center><h1>405 Not Allowed</h1></center> 2024-11-30T06:54:02.368553418-06:00 stdout F 2024-11-30 12:54:02 [pool-2-thread-1] (ExecuteSystemCommands.java:106) [DEBUG] <hr><center>nginx/1.21.5</center> 2024-11-30T06:54:02.368565659-06:00 stdout F 2024-11-30 12:54:02 [pool-2-thread-1] (ExecuteSystemCommands.java:106) [DEBUG] </body> 2024-11-30T06:54:02.36859845-06:00 stdout F 2024-11-30 12:54:02 [pool-2-thread-1] (ExecuteSystemCommands.java:106) [DEBUG] </html> 2024-11-30T06:54:02.369264313-06:00 stdout F 2024-11-30 12:54:02 [pool-2-thread-1] (ExecuteSystemCommands.java:106) [DEBUG] done.
Cause
PFMP покладається на httpshare-ingress-upload для оновлень RKE2 на рівні вузлів, що дозволяє завантажувати модулі оновлення вузлів.
Скрипт «CMO_Patch.zip», наданий сайтом підтримки Dell, обмежував можливості завантаження http-share для пом'якшення вразливості, що призводило до збоїв оновлення.
Resolution
Спосіб вирішення проблеми
-
Переконайтеся, що httpshare-ingress-upload не існує
kubectl get ingress -A | egrep httpshare-ingress
-
Перенесіть YAML-файл:
Скопіюйте файл «httpshare-ingress-upload.zip», прикріплений до цієї бази знань, на один із вузлів MVM і розпакуйте його. -
Застосуйте виправлення Ingress:
Авторизуйтесь у вузлі MVM, перейдіть до директорії, де зберігається YAML-файл, і застосуйте налаштування:kubectl apply -f httpshare-ingress-upload.yaml
-
Перевірте створення Ingress:
Переконайтеся, що вхід httpshare-ingress-upload був успішно створений. Заповнення IP-адрес може зайняти 15-30 секунд. Перевірте за допомогою:kubectl get ingress -n powerflex | egrep -i httpshare
-
Перезапустіть alcm pod
kubectl delete pod $(kubectl get pods -n powerflex | egrep alcm | awk '{print $1}') -n powerflex -
Перевірте журнали подів aclm, щоб дізнатися, чи виконується оновлення. Якщо ні, повторіть спробу оновлення PFMP:
Запустіть процес оновлення спочатку. Тепер питання має бути вирішене.
Дії після оновлення:
Після завершення оновлення PFMP виконайте наведені нижче дії залежно від версії PFMP:
-
Для систем з версіями PFMP старішими за 4.6.1:
- Повторно застосуйте інструмент виправлення CVE (CMO_Patch.zip), щоб забезпечити постійну відповідність вимогам безпеки. Перегляньте розділ Виправлення помилки KB для Powerflex Manager CVE-2024-37143 (для перегляду цієї статті потрібен обліковий запис служби підтримки Dell)
Примітка: Для будь-яких майбутніх оновлень згаданий вище обхідний шлях має застосовуватися знову, якщо систему не оновлено до версії 4.6.1 або новішої.
- Повторно застосуйте інструмент виправлення CVE (CMO_Patch.zip), щоб забезпечити постійну відповідність вимогам безпеки. Перегляньте розділ Виправлення помилки KB для Powerflex Manager CVE-2024-37143 (для перегляду цієї статті потрібен обліковий запис служби підтримки Dell)
-
Для систем під керуванням PFMP версії 4.6.1 або новішої:
- Після оновлення не потрібно нічого робити.
Виправлено у версії: Менеджер PowerFlex 4.6.1
Additional Information
Важливий
Якщо інсталяція PFMP (Powerflex Manager) раніше виконувалася користувачем root, переконайтеся, що право власності на наступні каталоги оновлено належним чином, перш ніж продовжувати оновлення PFMP. Для отримання більш детальної інформації дивіться Платформа керування PowerFlex - Не вдається оновити PFXM під час виконання завдання Очистити посадковий каталог для призначення артефактів