PowerFlex Manager: O upgrade do RKE2 falha repetidamente devido ao erro "405 não permitido"
Summary: PowerFlex Manager: O upgrade do RKE2 falha repetidamente devido ao erro "405 Não permitido" ao criar o payload do upgrade Durante o upgrade da PowerFlex Management Platform (PFMP), o processo falha repetidamente, fazendo looping no ponto de criação da pasta de payload de upgrade no compartilhamento http. A falha ocorre com um erro HTTP 405 não permitido. ...
Symptoms
Versão afetada:
PowerFlex Manager 4.x
Quando um usuário executa um upgrade RKE2 como parte do upgrade da PFMP, ocorrem os seguintes sintomas:
- O processo de upgrade faz download do pacote continuamente, mas falha durante a fase de criação do payload.
- Logs do
alcmpod mostra o erro '405 Não permitido' ao tentar criar a pasta de carga útil de atualização no 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
A PFMP conta com a entrada httpshare-ingress-upload para upgrades RKE2 no nível do nó, permitindo o carregamento de módulos de upgrade de nó.
Um script "CMO_Patch.zip" fornecido pelo site de suporte da Dell restringiu os recursos de carregamento do compartilhamento http para reduzir uma vulnerabilidade, resultando em falhas de upgrade.
Resolution
Solução temporária
-
Certifique-se de que a entrada httpshare-ingress-upload não exista
kubectl get ingress -A | egrep httpshare-ingress
-
Transfira o arquivo YAML:
Copie o arquivo "httpshare-ingress-upload.zip" anexado a este artigo da KB em um dos nós do MVM e extraia-o. -
Aplique a correção de entrada:
Faça log-in no nó do MVM, vá para o diretório onde o arquivo YAML está armazenado e aplique as configurações:kubectl apply -f httpshare-ingress-upload.yaml
-
Verifique a criação da entrada:
Verifique se a entrada httpshare-ingress-upload foi criada com sucesso. Pode levar de 15 a 30 segundos para que os endereços IP sejam preenchidos. Verifique com:kubectl get ingress -n powerflex | egrep -i httpshare
-
Reinicie o pod de alcm
kubectl delete pod $(kubectl get pods -n powerflex | egrep alcm | awk '{print $1}') -n powerflex -
Verifique os registros do pod aclm para ver se o upgrade está em execução. Caso contrário, repita o upgrade da PFMP:
Inicie o processo de upgrade novamente. O problema agora deve ser resolvido.
Ações pós-upgrade:
Quando o upgrade da PFMP estiver concluído, siga as etapas abaixo com base em sua versão da PFMP:
-
Para sistemas que executam versões da PFMP anteriores à 4.6.1:
- Reaplique a ferramenta de correção CVE (CMO_Patch.zip) para garantir a conformidade de segurança contínua. Consulte a correção da KB do Powerflex Manager CVE-2024-37143 (a conta de Suporte Dell é necessária para visualizar este artigo)
Nota: Para quaisquer upgrades futuros, a solução temporária mencionada acima deve ser aplicada novamente, a menos que o sistema seja atualizado para a versão 4.6.1 ou posterior.
- Reaplique a ferramenta de correção CVE (CMO_Patch.zip) para garantir a conformidade de segurança contínua. Consulte a correção da KB do Powerflex Manager CVE-2024-37143 (a conta de Suporte Dell é necessária para visualizar este artigo)
-
Para sistemas que executam o PFMP versão 4.6.1 ou posterior:
- Nenhuma ação adicional será necessária após o upgrade.
Corrigido na versão: PowerFlex Manager 4.6.1
Additional Information
Importante
Se a instalação do PFMP (Powerflex Manager) tiver sido realizada anteriormente como usuário root, certifique-se de que a propriedade dos diretórios a seguir seja atualizada adequadamente antes de prosseguir com o upgrade do PFMP. Para obter mais detalhes, consulte Plataforma de gerenciamento PowerFlex — O upgrade do PFXM falha na tarefa Limpar diretório de aterrissagem para destino de artefatos