PowerFlex Manager: Aktualizacja RKE2 wielokrotnie kończy się niepowodzeniem z powodu błędu "405 Unallowed"
Summary: PowerFlex Manager: Uaktualnienie RKE2 wielokrotnie kończy się niepowodzeniem z powodu błędu "405 Not Allowed" podczas tworzenia ładunku aktualizacji Podczas uaktualniania platformy zarządzania PowerFlex (PFMP) proces wielokrotnie kończy się niepowodzeniem, zapętlając się w momencie tworzenia folderu aktualizacji w udziale http. Błąd występuje z błędem HTTP 405 Niedozwolony. ...
Symptoms
Wersja, której dotyczy problem:
PowerFlex Manager 4.x
Gdy użytkownik wykonujący aktualizację RKE2 w ramach aktualizacji PFMP występuje następujący objaw:
- Proces uaktualniania stale pobiera pakiet, ale kończy się niepowodzeniem podczas fazy tworzenia ładunku.
- Dzienniki z
alcmpod pokazuje błąd "405 Not Allowed" podczas próby utworzenia folderu ładunku aktualizacji w udziale http2024-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
Program PFMP opiera się na ruchu przychodzącym httpshare-ingress-upload dla uaktualnień RKE2 na poziomie węzła, umożliwiając przekazywanie modułów uaktualnienia węzła.
Skrypt "CMO_Patch.zip" dostarczony przez witrynę pomocy technicznej firmy Dell ograniczał możliwości przesyłania HTTP-Share w celu złagodzenia luki w zabezpieczeniach, co skutkowało niepowodzeniem aktualizacji.
Resolution
Obejście problemu
-
Upewnij się, że ruch przychodzący httpshare-ingress-upload nie istnieje
kubectl get ingress -A | egrep httpshare-ingress
-
Prześlij plik YAML:
Skopiuj plik "httpshare-ingress-upload.zip" dołączony do tej bazy wiedzy do jednego z węzłów MVM i wyodrębnij go. -
Zastosuj poprawkę ruchu przychodzącego:
Zaloguj się do węzła MVM, przejdź do katalogu, w którym jest przechowywany plik YAML, i zastosuj ustawienia:kubectl apply -f httpshare-ingress-upload.yaml
-
Sprawdź tworzenie ruchu przychodzącego:
Upewnij się, że ruch przychodzący httpshare-ingress-upload został pomyślnie utworzony. Wypełnienie adresów IP może potrwać od 15 do 30 sekund. Skontaktuj się z:kubectl get ingress -n powerflex | egrep -i httpshare
-
Uruchom ponownie zasobnik alcm
kubectl delete pod $(kubectl get pods -n powerflex | egrep alcm | awk '{print $1}') -n powerflex -
Sprawdź dzienniki zasobników aclm, aby sprawdzić, czy uaktualnienie jest uruchomione. Jeśli tak się nie stanie, ponów próbę uaktualnienia PFMP:
Uruchom proces uaktualnienia ponownie. Problem powinien być teraz rozwiązany.
Działania po uaktualnieniu:
Po zakończeniu uaktualniania PFMP należy wykonać następujące czynności w zależności od wersji PFMP:
-
W przypadku systemów z funkcjami PFMP w wersji starszej niż 4.6.1:
- Ponownie zastosuj narzędzie korygujące CVE (CMO_Patch.zip), aby zapewnić ciągłą zgodność z zabezpieczeniami. Zapoznaj się z artykułem z bazy wiedzy dotyczącym naprawy problemu PowerFlex Manager CVE-2024-37143 (do wyświetlenia tego artykułu wymagane jest konto pomocy technicznej firmy Dell)
Uwaga: W przypadku wszelkich przyszłych aktualizacji należy ponownie zastosować powyższe obejście, chyba że system zostanie zaktualizowany do wersji 4.6.1 lub nowszej.
- Ponownie zastosuj narzędzie korygujące CVE (CMO_Patch.zip), aby zapewnić ciągłą zgodność z zabezpieczeniami. Zapoznaj się z artykułem z bazy wiedzy dotyczącym naprawy problemu PowerFlex Manager CVE-2024-37143 (do wyświetlenia tego artykułu wymagane jest konto pomocy technicznej firmy Dell)
-
W przypadku systemów z oprogramowaniem PFMP w wersji 4.6.1 lub nowszej:
- Po uaktualnieniu nie są wymagane żadne dodatkowe działania.
Naprawiono w wersji: PowerFlex Manager 4.6.1
Additional Information
Ważne
Jeśli instalacja PFMP (Powerflex Manager) została wcześniej przeprowadzona jako użytkownik główny, przed kontynuowaniem aktualizacji PFMP należy upewnić się, że własność następujących katalogów została odpowiednio zaktualizowana. Aby uzyskać więcej informacji, zobacz PowerFlex Management Platform — aktualizacja PFXM kończy się niepowodzeniem w zadaniu Wyczyść katalog lądowania dla miejsca docelowego artefaktów