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)

Esta página fornece informações para solucionar problemas que podem ocorrer 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 Como resolver problemas da 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 falhar porque o tamanho do banco de dados do Airflow é muito grande para que as operações de upgrade sejam bem-sucedidas.

Se o tamanho do banco de dados do Airflow for maior 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 ver informações detalhadas sobre conflitos de pacotes, execute uma verificação de upgrade.
  • Reduza 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 alterar os requisitos de versão para resolver dependências conflitantes, consulte a documentação do pip.

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

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 de ambientes atuais são diferentes. A versão do Airflow gerenciado escolhida ao criar um novo 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 Google Cloud console, apenas as versões mais recentes estão disponíveis como opções de upgrade.

O ambiente não é í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 para o status não íntegro é quando os componentes do ambiente se aproximam dos limites de recursos configurados e operam constantemente na carga máxima. Como alguns componentes do ambiente não podem informar o status, o DAG de verificação de atividade informa o status do ambiente como não íntegro.

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

A falta de conectividade com o DNS pode causar problemas ao realizar 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

Isso geralmente significa que não há 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 o ambiente foi criado.

A seguir