Como resolver problemas de atualização e upgrade de ambientes

Airflow gerenciado (Geração 3) | Airflow gerenciado (Geração 2) | Airflow gerenciado (Geração 1 legada)

Nesta página, você encontra informações para solucionar problemas que podem ser encontrados ao atualizar ou fazer upgrade de ambientes do serviço gerenciado para Apache Airflow.

Para informações sobre solução de problemas relacionadas à criação de ambientes, consulte Solução de problemas de criação de ambientes.

Quando os ambientes do Airflow gerenciado são atualizados, a maioria dos problemas acontece pelos seguintes motivos:

  • Problemas de permissão da conta de serviço
  • Problemas de dependência do PyPI
  • Tamanho do banco de dados do Airflow

Permissões insuficientes para atualizar ou fazer upgrade de um ambiente

Se o Airflow Gerenciado não puder atualizar ou fazer upgrade de um ambiente devido a permissões insuficientes, a seguinte mensagem de erro será exibida:

ERROR: (gcloud.composer.environments.update) PERMISSION_DENIED: The caller does not have permission

Solução: atribua papéis à sua conta e à conta de serviço do ambiente, conforme descrito em Controle de acesso.

A conta de serviço do ambiente não tem permissões suficientes

Ao criar um ambiente do Airflow gerenciado, você especifica uma conta de serviço que realiza a maioria das operações do ambiente. Se essa conta de serviço não tiver permissões suficientes para a operação solicitada, o Airflow gerenciado vai gerar um erro:

    UPDATE operation on this environment failed 3 minutes ago with the
    following error message:
    Composer Backend timed out. Currently running tasks are [stage:
    CP_COMPOSER_AGENT_RUNNING
    description: "No agent response published."
    response_timestamp {
      seconds: 1618203503
      nanos: 291000000
    }
    ].

Solução: atribua papéis à sua Conta do Google e à conta de serviço do ambiente, conforme descrito em Controle de acesso.

O tamanho do banco de dados do Airflow é muito grande para realizar a operação

Uma operação de upgrade pode não ter êxito porque o tamanho do banco de dados do Airflow é muito grande para o sucesso das operações de upgrade.

Se o tamanho do banco de dados do Airflow for maior do que 16 GB, o Airflow Gerenciado vai gerar o seguinte erro:

Airflow database uses more than 16 GB. Please clean the database before upgrading.

Solução: execute a limpeza do banco de dados do Airflow, conforme descrito em Limpar o banco de dados do Airflow.

Falha no upgrade para uma nova versão do Airflow Gerenciado devido a conflitos de pacote do PyPI

Ao fazer upgrade de um ambiente com pacotes PyPI personalizados instalados, talvez ocorram erros relacionados a conflitos no pacote PyPI. Isso pode acontecer porque a nova imagem do Serviço gerenciado para Apache Airflow contém versões mais recentes de pacotes pré-instalados. Isso pode causar conflitos de dependência com pacotes PyPI que você instalou no ambiente.

Solução:

  • Para informações detalhadas sobre conflitos de pacotes, execute uma verificação de upgrade.
  • Reduzir as restrições de versão para pacotes PyPI personalizados instalados. Por exemplo, em vez de especificar uma versão como ==1.0.1, especifique-a como >=1.0.1.
  • Para mais informações sobre como mudar os requisitos de versão para resolver dependências conflitantes, consulte a documentação do pip (em inglês).

Não é possível fazer upgrade de um ambiente para uma versão que ainda tem suporte

Os ambientes do Airflow Gerenciado só podem ser atualizados para várias versões mais recentes e anteriores.

As limitações de versão para criar novos ambientes e fazer upgrade dos atuais são diferentes. A versão do Airflow Gerenciado escolhida ao criar um ambiente pode não estar disponível ao fazer upgrade de ambientes atuais.

É possível realizar a operação de upgrade usando a Google Cloud CLI, a API ou o Terraform. No console Google Cloud , apenas as versões mais recentes estão disponíveis como opções de upgrade.

O ambiente não está íntegro (falha na verificação de atividade)

Só é possível fazer upgrade de um ambiente se o status dele for informado como íntegro.

Uma das causas mais comuns de status não íntegro é quando os componentes do ambiente se aproximam dos limites de recursos configurados e operam constantemente com carga máxima. Como alguns componentes do ambiente não podem informar o status, o DAG de verificação de atividade informa que o status do ambiente não é íntegro.

Para resolver esse problema, recomendamos aumentar os limites de recursos. Embora recomendemos manter seu ambiente longe dos limites em todos os momentos, você também pode fazer isso apenas durante o período de upgrade.

A falta de conectividade com o DNS pode causar problemas ao fazer upgrades ou atualizações.

Esses problemas de conectividade podem resultar em entradas de registro como esta:

WARNING - Compute Engine Metadata server unavailable attempt 1 of 5. Reason: [Errno -3] Temporary failure in name resolution Error

Normalmente, isso significa que não há uma rota para o DNS. Portanto, verifique se o nome DNS metadata.google.internal pode ser resolvido para o endereço IP nas redes de cluster, pods e serviços. Verifique se o acesso privado do Google está ativado na VPC (no projeto host ou de serviço) em que seu ambiente foi criado.

A seguir