Airflow gerenciado (Geração 3) | Airflow gerenciado (Geração 2) | Airflow gerenciado (Geração 1 legada)
Esta página explica como um ambiente pode ser atualizado.
Sobre as operações de atualização
Quando você muda os parâmetros do ambiente, como especificar novos parâmetros de escalonamento e desempenho ou instalar pacotes PyPI personalizados, o ambiente é atualizado.
Depois que essa operação for concluída, as mudanças vão ficar disponíveis no ambiente.
Para um único ambiente do Airflow gerenciado, só é possível iniciar uma operação de atualização por vez. Aguarde a conclusão de uma operação de atualização antes de iniciar outra operação de ambiente.
Limites de CPU do acionador
O Serviço gerenciado para Apache Airflow na versão 2.4.4 apresenta uma abordagem de escalonamento de desempenho diferente para o componente do acionador do Airflow, que se aplica a todas as versões do Airflow gerenciado (Geração 2).
Antes da versão 2.4.4, os ambientes do Airflow gerenciado podiam usar no máximo um ou dois acionadores. Após a mudança, é possível ter até 10 acionadores por ambiente, mas cada um é limitado a no máximo uma vCPU.
As operações de atualização do ambiente falham se ele estiver configurado com mais de uma vCPU por acionador. É necessário ajustar a configuração para atender ao limite de uma vCPU para realizar atualizações em outros componentes.
Para mais informações, consulte:
- Configurar a alocação de recursos do acionador
- Ajustar a contagem de acionadores
- Resolver problemas de upgrade do ambiente: CPU do acionador excedida
Como as atualizações afetam as tarefas do Airflow em execução
Ao executar uma operação de atualização, os programadores e workers do Airflow no ambiente podem exigir uma reinicialização. Nesse caso, todas as tarefas em execução são encerradas. Depois que a operação de atualização é concluída, o Airflow programa essas tarefas para uma nova tentativa, dependendo da maneira como você configura as novas tentativas para seus DAGs.
As seguintes mudanças causam o encerramento da tarefa do Airflow:
- Fazer upgrade do ambiente para uma nova versão.
- Adicionar, mudar ou excluir pacotes PyPI personalizados.
- Mudar as variáveis de ambiente do Airflow gerenciado.
- Adicionar ou remover substituições de opções de configuração do Airflow ou mudar os valores delas.
- Mudar a CPU, a memória ou o armazenamento dos workers do Airflow.
Reduzir o número máximo de workers do Airflow, se o novo valor for menor que o número de workers em execução. Por exemplo, se um ambiente estiver executando três workers e o máximo for reduzido para dois.
Mudar o modo de resiliência do ambiente.
As seguintes mudanças não causam o encerramento da tarefa do Airflow:
- Criar, atualizar ou excluir um DAG (não é uma operação de atualização).
- Pausar ou retomar DAGs (não é uma operação de atualização).
- Mudar as variáveis do Airflow (não é uma operação de atualização).
- Mudar as conexões do Airflow (não é uma operação de atualização).
- Ativar ou desativar a integração da linhagem de dados do Knowledge Catalog.
- Mudar o tamanho do ambiente.
- Mudar o número de programadores.
- Mudar a CPU, a memória ou o armazenamento dos programadores do Airflow.
- Mudar o número de acionadores.
- Mudar a CPU, a memória ou o armazenamento dos acionadores do Airflow.
- Mudar a CPU, a memória ou o armazenamento do servidor da Web do Airflow.
- Aumentar ou diminuir o número mínimo de workers.
- Reduzir o número máximo de workers do Airflow. Por exemplo, se um ambiente estiver executando dois workers e o máximo for reduzido para três.
- Mudar as janelas de manutenção.
- Mudar as configurações de snapshots programados.
- Mudar os rótulos do ambiente.
Atualizar com o Terraform
Execute terraform plan antes de terraform apply para conferir se o Terraform cria um novo ambiente em vez de atualizá-lo.
Antes de começar
Verifique se sua conta, a conta de serviço do ambiente e a conta do agente de serviço do Airflow gerenciado no projeto têm as permissões necessárias:
Sua conta precisa ter um papel que acione operações de atualização do ambiente.
A conta de serviço do ambiente precisa ter um papel que tenha permissões suficientes para executar operações de atualização.
A conta do agente de serviço do Airflow gerenciado precisa ter permissões para criar vinculações entre a conta de serviço do ambiente e a conta de serviço do Kubernetes do cluster do ambiente.
O comando
gcloud composer environments updateé encerrado quando a operação termina. É possível usar a flag--asyncpara evitar esperar a conclusão da operação.
Atualizar ambientes
Para mais informações sobre como atualizar o ambiente, consulte outras páginas de documentação sobre operações de atualização específicas. Exemplo:
- Substituir as opções de configuração do Airflow
- Definir as variáveis de ambiente
- Instalar dependências do Python
Ver detalhes do ambiente
Console
No Google Cloud console, acesse a página Ambientes.
Na lista de ambientes, clique no nome do ambiente. A página Detalhes do ambiente é aberta.
gcloud
Execute o seguinte comando gcloud:
gcloud composer environments describe ENVIRONMENT_NAME \
--location LOCATION
Substitua:
ENVIRONMENT_NAMEpelo nome do ambienteLOCATIONpela região em que o ambiente está localizado
API
Crie uma solicitação de API environments.get.
Exemplo:
GET https://composer.googleapis.com/v1/projects/example-project/
locations/us-central1/environments/example-environment
Terraform
Execute o comando terraform state show para o recurso do ambiente.
O nome do recurso do Terraform do ambiente pode ser diferente do nome do ambiente.
terraform state show google_composer_environment.RESOURCE_NAME
Substitua:
RESOURCE_NAMEpelo nome do recurso do ambiente.
Como reverter mudanças de atualização
Em algumas situações raras, uma operação de atualização pode ser interrompida (por exemplo, devido a um tempo limite), e as mudanças solicitadas podem não ser revertidas em todos os componentes do ambiente (como o servidor da Web do Airflow).
Por exemplo, uma operação de atualização pode estar instalando ou removendo módulos PyPI adicionais, redefinindo ou definindo uma nova variável de ambiente do Airflow ou do Airflow gerenciado ou mudando alguns parâmetros relacionados ao Airflow.
Essa situação pode ocorrer se uma operação de atualização for acionada quando outras operações estiverem em andamento, por exemplo, o escalonamento automático do cluster do Airflow gerenciado ou uma operação de manutenção.
Nessa situação, é recomendável repetir a operação.
Duração das operações de atualização ou upgrade
A duração das operações de atualização e upgrade é afetada pelos seguintes fatores:
A maioria das operações de atualização ou upgrade exige a reinicialização de componentes do Airflow, como programadores, workers e servidores da Web. Depois que um componente é reinicializado, ele precisa ser inicializado. Durante a inicialização, os programadores e workers do Airflow fazem o download do conteúdo das pastas
/dagse/pluginsdo bucket do ambiente. O processo de sincronização de arquivos com programadores e workers do Airflow não é instantâneo e depende do tamanho total e do número de todos os objetos nessas pastas.Recomendamos manter apenas arquivos DAG e de plug-in nas pastas
/dagse/plugins(respectivamente) e remover todos os outros arquivos. Muitos dados nas pastas/dagse/pluginspodem deixar a inicialização dos componentes do Airflow mais lenta e, em alguns casos, impossibilitar a inicialização.Recomendamos manter menos de 30 MB de dados nas pastas
/dagse/pluginse não exceder o tamanho de 100 MB de dados. Para mais informações, consulte Como lidar com um grande número de DAGs e plug-insO tamanho do banco de dados do Airflow pode aumentar significativamente o tempo das operações de upgrade. Recomendamos manter o tamanho do banco de dados do Airflow do seu ambiente.