Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
Esta página explica como migrar DAGs, dados e configuração do seu ambiente do Cloud Composer 2 existente para um novo ambiente do Cloud Composer 3 usando o script de migração.
Outros guias de migração
De | Para | Método | Guia |
---|---|---|---|
Cloud Composer 2 | Cloud Composer 3 | Paralelamente, usando o guião de migração | Este guia |
Cloud Composer 2 | Cloud Composer 3 | Lado a lado, usando instantâneos | Guia de migração do Snapshots |
Cloud Composer 1, Airflow 2 | Cloud Composer 3 | Lado a lado, usando instantâneos | Guia de migração do Snapshots |
Cloud Composer 1, Airflow 2 | Cloud Composer 2 | Lado a lado, usando instantâneos | Guia de migração do Snapshots |
Cloud Composer 1, Airflow 2 | Cloud Composer 2 | Transferência manual lado a lado | Guia de migração manual |
Cloud Composer 1, Airflow 1 | Cloud Composer 2, Airflow 2 | Lado a lado, usando instantâneos | Guia de migração do Snapshots |
Cloud Composer 1, Airflow 1 | Cloud Composer 2, Airflow 2 | Transferência manual lado a lado | Guia de migração manual |
Cloud Composer 1, Airflow 1 | Cloud Composer 1, Airflow 2 | Transferência manual lado a lado | Guia de migração manual |
Acerca do script de migração
O script de migração é um script Python para migrações lado a lado que automatiza o processo de migração do Cloud Composer 2 para o Cloud Composer 3. Usa instantâneos do ambiente para transferir a configuração do ambiente para o novo ambiente.
O script realiza as seguintes ações:
Obtém a configuração do ambiente do Cloud Composer 2.
Cria um ambiente do Cloud Composer 3 com uma configuração que corresponde à configuração obtida.
Uma vez que os ambientes do Cloud Composer 3 têm uma arquitetura diferente, alguns parâmetros podem ser ajustados para corresponder às diferenças. Também pode ajustar a maioria dos parâmetros do ambiente mais tarde.
Pausa todos os DAGs no ambiente do Cloud Composer 2 um a um. Apenas os DAGs que foram retomados no ambiente do Cloud Composer 2 vão ser retomados mais tarde.
Guarda um instantâneo do ambiente de origem do Cloud Composer 2. A captura de ecrã é guardada na localização predefinida para capturas de ecrã, o contentor do ambiente 2 do Cloud Composer.
Carrega a captura de ecrã para o ambiente do Cloud Composer 3.
O script não verifica a compatibilidade dos pacotes PyPI personalizados, das variáveis de ambiente e das substituições da opção de configuração do Airflow com o ambiente do Cloud Composer 3.
Em caso de conflitos, a migração falha após a criação do ambiente do Cloud Composer, durante o processo de carregamento do instantâneo. Neste caso, pode ajustar a configuração do ambiente do Cloud Composer 2 para resolver o conflito ou migrar sem o script de migração e ignorar o carregamento de pacotes PyPI personalizados, variáveis de ambiente ou substituições de configuração do Airflow quando carregar a imagem instantânea.
Despausa os DAGs no ambiente do Cloud Composer 3. Se alguns DAGs já estiverem pausados antes de executar o script, vão permanecer pausados.
O script tem as seguintes limitações:
O script cria sempre um novo ambiente do Cloud Composer 3. Não é possível carregar o instantâneo para um ambiente do Cloud Composer 3 existente. Para o fazer, pode migrar através de instantâneos, sem usar o script de migração.
O script cria um ambiente do Cloud Composer 3 apenas na mesma região e projeto que o ambiente do Cloud Composer 2.
Só pode carregar instantâneos para a mesma versão ou uma versão posterior do Airflow. Por exemplo, não pode carregar uma captura instantânea do Airflow 2.10.2 para o Airflow 2.9.3.
Só é possível migrar ambientes do Cloud Composer 2 com o script de migração.
Antes de começar
Uma vez que o script de migração cria um ambiente e, em seguida, guarda e carrega uma captura de ecrã, o processo de migração pode demorar mais de uma hora.
O script usa instantâneos. Os instantâneos são suportados
Na versão 2.0.9 e posteriores do Cloud Composer 2.
A sua conta requer uma função de IAM que possa criar ambientes, guardar capturas de ecrã e carregar capturas de ecrã.
O tamanho máximo da base de dados do Airflow que suporta resumos é de 20 GB. Se a base de dados do seu ambiente ocupar mais de 20 GB, reduza o tamanho da base de dados do Airflow.
O número total de objetos nas pastas
/dags
,/plugins
e/data
no contentor do ambiente tem de ser inferior a 100 000 para criar instantâneos.Se usar o mecanismo XCom para transferir ficheiros, certifique-se de que o usa de acordo com as diretrizes do Airflow. A transferência de ficheiros grandes ou de um grande número de ficheiros através do XCom afeta o desempenho da base de dados do Airflow e pode originar falhas ao carregar instantâneos ou atualizar o seu ambiente. Considere usar alternativas, como o Cloud Storage, para transferir grandes volumes de dados.
Migre para o Cloud Composer 3
Esta secção descreve o processo de migração através do script de migração.
Verifique as diferenças entre o Cloud Composer 2 e o Cloud Composer 3
Consulte a lista de diferenças entre o Cloud Composer 2 e o Cloud Composer 3.
Certifique-se de que o seu ambiente não usa funcionalidades que ainda não estão disponíveis no Cloud Composer 3 e que sabe como usar e configurar funcionalidades específicas do Cloud Composer 3.
Certifique-se de que os seus DAGs são compatíveis com o Cloud Composer 3
Certifique-se de que os seus DAGs são compatíveis com o Cloud Composer 3 seguindo estas sugestões:
A lista de pacotes no ambiente do Cloud Composer 3 pode ser diferente da do ambiente do Cloud Composer 2. Isto pode afetar a compatibilidade dos seus DAGs com o Cloud Composer 3.
No Cloud Composer 3, o cluster do ambiente está localizado no projeto de inquilino. Certifique-se de que os seus DAGs são compatíveis com esta alteração. Em particular, as cargas de trabalho
KubernetesPodOperator
são agora dimensionadas independentemente do seu ambiente e não é possível usar configurações de afinidade de pods.
Instale as dependências do script
O script requer a versão 3.8 do Python e versões posteriores.
O script de migração usa a CLI gcloud e utilitários
curl
. Certifique-se de que ambos os utilitários estão instalados no computador.
Transfira o script
Transfira o script de migração (composer_migrate.py
) do respetivo
repositório no GitHub.
Autorize na CLI gcloud
Autorize na CLI gcloud:
gcloud auth login
Pré-visualize os parâmetros do novo ambiente
Pode pré-visualizar os parâmetros do ambiente do Cloud Composer 3 antes da migração. Pode usar esta opção para ver como a configuração do ambiente do Cloud Composer 2 corresponde ao Cloud Composer 3.
As substituições da opção de configuração do Airflow, os pacotes PyPI personalizados e as variáveis de ambiente são carregados a partir da captura instantânea do ambiente e não são apresentados na pré-visualização.
Expandir
Execute o seguinte comando:
python3 composer_migrate.py \
--project PROJECT_ID \
--location LOCATION \
--source_environment COMPOSER_2_ENV \
--target_environment COMPOSER_3_ENV \
--target_airflow_version COMPOSER_3_AIRFLOW_VERSION \
--dry_run
Substitua o seguinte:
PROJECT_ID
: o ID do projeto.COMPOSER_2_ENV
: o nome do seu ambiente do Cloud Composer 2.LOCATION
: a região onde o ambiente do Cloud Composer 2 está localizado. O ambiente do Cloud Composer 3 é criado na mesma região.COMPOSER_3_AIRFLOW_VERSION
: a versão do Airflow do ambiente do Cloud Composer 3 Esta versão tem de ser igual ou posterior à versão no ambiente do Cloud Composer 2 e tem de ser uma das versões disponíveis no Cloud Composer 3.
Exemplo:
python3 composer_migrate.py \
--project example-project \
--location us-central1 \
--source_environment example-composer-2-environment \
--target_environment example-composer-3-environment \
--target_airflow_version 2.10.2
Verifique o estado do ambiente
Certifique-se de que o ambiente do Cloud Composer 2 que quer migrar está em bom estado.
Se o seu ambiente não estiver em bom estado, o processo de migração falha após a criação de um novo ambiente do Cloud Composer 3 porque não é possível criar um instantâneo.
Consulte o artigo Use o painel de controlo de monitorização para mais informações sobre formas de verificar o estado do ambiente e o estado da base de dados.
Execute o script de migração
Execute o seguinte comando:
python3 composer_migrate.py \
--project PROJECT_ID \
--location LOCATION \
--source_environment COMPOSER_2_ENV \
--target_environment COMPOSER_3_ENV \
--target_airflow_version COMPOSER_3_AIRFLOW_VERSION
Substitua o seguinte:
PROJECT_ID
: o ID do projeto.COMPOSER_2_ENV
: o nome do seu ambiente do Cloud Composer 2.LOCATION
: a região onde o ambiente do Cloud Composer 2 está localizado. O ambiente do Cloud Composer 3 é criado na mesma região.COMPOSER_3_AIRFLOW_VERSION
: a versão do Airflow do ambiente do Cloud Composer 3 Esta versão tem de ser igual ou posterior à versão no ambiente do Cloud Composer 2 e tem de ser uma das versões disponíveis no Cloud Composer 3.
Verifique se existem erros de DAG
Na interface Web do Airflow, aceda a DAGs e verifique se existem erros de sintaxe de DAG comunicados.
Verifique se as execuções de DAG estão agendadas para a hora correta.
Aguarde a execução dos DAGs no ambiente do Cloud Composer 3 e verifique se foram bem-sucedidos. Se uma execução de DAG tiver sido bem-sucedida, não a despause no ambiente do Cloud Composer 2. Se o fizer, ocorre uma execução de DAG para a mesma data e hora no ambiente do Cloud Composer 2.
Se a execução de um DAG específico falhar, tente resolver os problemas do DAG até que seja executado com êxito no Cloud Composer 3.
Monitorize o seu ambiente do Cloud Composer 3
Monitorize o seu ambiente do Cloud Composer 3 para detetar potenciais problemas, execuções de DAG com falhas e o estado geral do ambiente.
Se o ambiente do Cloud Composer 3 for executado sem problemas durante um período suficiente, pondere eliminar o ambiente do Cloud Composer 2.