Airflow gerenciado (geração 3) | Airflow gerenciado (geração 2) | Airflow gerenciado (geração 1 legada)
Nesta página, descrevemos como fazer upgrade do ambiente para uma nova versão do Airflow Gerenciado ou do Airflow.
Sobre as operações de upgrade
É possível fazer upgrade da versão do Airflow Gerenciado, da versão do Airflow ou de ambas ao mesmo tempo.
Quando você altera a versão do Airflow ou do Airflow Gerenciado usada pelo ambiente:
O Airflow Gerenciado reimplanta os componentes do ambiente usando novas versões das imagens do Airflow Gerenciado.
O Airflow Gerenciado aplica mudanças de configuração do Airflow, como pacotes PyPI personalizados ou substituições de opções de configuração do Airflow, se o ambiente as tiver antes do upgrade.
O Airflow Gerenciado atualiza a conexão do Airflow
airflow_dbpara apontar para o novo banco de dados do Cloud SQL.
O upgrade não muda a forma como você se conecta aos recursos no seu ambiente, como o URL do bucket do ambiente ou o servidor da Web do Airflow.
Limitações das operações de upgrade e reversão
As operações de upgrade têm as seguintes limitações:
As versões do Airflow Gerenciado são lançadas gradualmente em todas as regiões compatíveis com o Airflow Gerenciado ao longo de vários dias. A versão mais recente de um lançamento em andamento pode ainda não estar disponível na sua região.
Não é possível fazer downgrade para uma versão anterior do Airflow Gerenciado ou do Airflow.
No console do Google Cloud , só é possível fazer upgrade para as versões mais recentes compatíveis do Airflow Gerenciado (segunda geração).
Na CLI do Google Cloud, na API ou no Terraform, é possível fazer upgrade de um ambiente para as versões mais recentes compatíveis, três versões anteriores do Airflow Gerenciado (2ª geração), a última versão de patch da versão secundária anterior e para versões com um cronograma de upgrade estendido. Não é possível fazer upgrade para outras versões do Airflow Gerenciado (2ª geração), mesmo que elas ainda sejam compatíveis e possam ser usadas para criar um novo ambiente.
Exemplo de opções de upgrade para a Google Cloud CLI, a API e o Terraform:
- Versões mais recentes:
composer-2.11.5-airflow-* - Três versões anteriores do Airflow gerenciado (geração 2):
composer-2.11.4-airflow-*,composer-2.11.3-airflow-*,composer-2.11.2-airflow-*. - Último patch da versão secundária anterior do Airflow Gerenciado (Geração 2):
composer-2.10.2-airflow-* - Versões do Airflow gerenciado (geração 2) com um cronograma de upgrade estendido:
composer-2.10.2-airflow-*,composer-2.10.1-ariflow-*,composer-2.9.7-airflow-*e outras versões com um cronograma de upgrade estendido.
- Versões mais recentes:
A versão para a qual você faz upgrade precisa ser compatível com a versão atual do Python do seu ambiente.
Os limites de cota da API Compute Engine podem impedir upgrades. No console do Google Cloud , acesse a página IAM e administrador > Cotas e limites do sistema e verifique se a cota da API Compute Engine para CPU não foi excedida. Se o limite de cota estiver sendo atingido, solicite uma extensão de cota antes de prosseguir com a operação de upgrade.
Não será possível fazer upgrade do ambiente se o banco de dados do Airflow tiver mais de 16 GB de dados. Durante um upgrade, um aviso será mostrado se o tamanho do banco de dados do Airflow for maior que 16 GB. Nesse caso, realize a manutenção do banco de dados para reduzir o tamanho dele.
Se você usar o mecanismo XCom para transferir arquivos, siga as diretrizes do Airflow. A transferência de arquivos grandes ou de um grande número de arquivos usando o XCom afeta o desempenho do banco de dados do Airflow e pode levar a falhas ao carregar snapshots ou fazer upgrade do ambiente. Considere usar alternativas como o Cloud Storage para transferir grandes volumes de dados.
Antes de começar
Recomendamos criar um novo snapshot do ambiente para poder recriá-lo, se necessário.
Sua conta precisa ter um papel que possa acionar operações de upgrade de ambiente. Além disso, a conta de serviço do ambiente precisa ter um papel com permissões suficientes para realizar operações de upgrade. Consulte Controle de acesso para mais informações.
Talvez você perceba entradas de metadados do Compute Engine para os clusters do GKE que pertencem a ambientes no seu projeto. Durante a criação e os upgrades cluster do GKE, o Google Kubernetes Engine adiciona automaticamente entradas de metadados para envolvidos no projeto (
google_compute_project_metadata) para rastrear o uso do intervalo de endereços IP secundários. Não modifique nem remova essas entradas. O Google Kubernetes Engine os gerencia automaticamente.
Verificar se o ambiente está atualizado
O Airflow Gerenciado mostra avisos quando a imagem do seu ambiente se aproxima do fim da data de suporte completo. Use esses avisos para manter seu ambiente sempre compatível.
O Airflow Gerenciado monitora a versão de imagem do Airflow Gerenciado em que seu ambiente se baseia. Quando a data de fim do suporte se aproximar, você vai receber um aviso na lista de ambientes e na página Detalhes do ambiente.
Para verificar se o ambiente está atualizado:
Console
No console do Google Cloud , acesse a página Ambientes.
Na lista de ambientes, clique no nome do seu ambiente. A página Detalhes do ambiente é aberta.
Acesse a guia Configuração do ambiente.
No campo Versão da imagem, uma das seguintes mensagens será exibida:
Versão mais nova disponível. A imagem do ambiente é totalmente compatível.
Nova versão disponível. A imagem do ambiente é totalmente compatível e é possível fazer upgrade dela para uma versão posterior.
O suporte para esta versão de imagem termina em... A imagem do ambiente se aproxima do final do período de suporte completo.
Esta versão não é compatível desde... Seu ambiente já passou do período de suporte completo.
gcloud
Essa funcionalidade não está disponível na Google Cloud CLI. Você pode Ver upgrades sugeridos, que mostra as novas versões disponíveis.
API
Essa funcionalidade não está disponível pela API. Você pode Ver upgrades sugeridos, que mostra as novas versões disponíveis.
Ver upgrades sugeridos
O Airflow Gerenciado fornece uma lista de versões do Airflow Gerenciado para as quais você pode fazer upgrade do seu ambiente.
Para conferir as versões do Airflow Gerenciado sugeridas para um upgrade:
Console
No console do Google Cloud , acesse a página Ambientes.
Na lista de ambientes, clique no nome do seu ambiente. A página Detalhes do ambiente é aberta.
Acesse a guia Configuração do ambiente e clique em Fazer upgrade da versão da imagem.
Para ver a lista de versões sugeridas, clique no menu suspenso Versão da imagem do Airflow gerenciado.
gcloud
gcloud composer environments list-upgrades \
ENVIRONMENT_NAME \
--location LOCATION
Substitua:
ENVIRONMENT_NAMEpelo nome do ambienteLOCATIONpela região em que o ambiente está localizado;
Exemplo:
gcloud composer environments list-upgrades example-environment \
--location us-central1
API
É possível ver as versões disponíveis para um local. Para isso, crie uma
solicitação de API imageVersions.list.
Exemplo:
// GET https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/imageVersions
Verificar se há conflitos de pacotes PyPI
Verifique se os pacotes PyPI instalados no seu ambiente têm algum conflito com os pacotes pré-instalados na nova imagem do Airflow Gerenciado.
Uma verificação bem-sucedida significa que não há conflitos nas dependências de pacotes do PyPI entre a versão atual e a especificada. No entanto, uma operação de upgrade ainda pode não ser bem-sucedida por outros motivos.
Console
Para executar uma verificação de upgrade no ambiente:
No console do Google Cloud , acesse a página Ambientes.
Na lista de ambientes, clique no nome do seu ambiente. A página Detalhes do ambiente é aberta.
Acesse a guia Configuração do ambiente, localize a entrada Versão da imagem e clique em Fazer upgrade.
Na caixa de diálogo Upgrade da versão do ambiente, na lista suspensa Nova versão, selecione uma versão do Airflow Gerenciado para a qual você quer fazer upgrade.
Na seção Compatibilidade de pacotes PyPI, clique em Verificar conflitos.
Aguarde a conclusão da verificação. Se houver conflitos de dependência de pacote PyPI, as mensagens de erro exibidas conterão detalhes sobre pacotes conflitantes e versões de pacotes.
gcloud
Para executar uma verificação de upgrade no ambiente, execute o comando
environments check-upgrade
com a
versão da imagem do Airflow Gerenciado
para a qual você quer fazer upgrade:
gcloud composer environments check-upgrade \
ENVIRONMENT_NAME \
--location LOCATION \
--image-version IMAGE_VERSION
Substitua:
ENVIRONMENT_NAMEpelo nome do ambienteLOCATIONpela região em que o ambiente está localizado;-
IMAGE_VERSIONpela versão da imagem do Airflow Gerenciado para a qual você quer fazer upgrade, no formatocomposer-a.b.c-airflow-x.y.z. Também é possível usar aliases de versão.
Exemplo:
gcloud composer environments check-upgrade example-environment \
--location us-central1 \
--image-version composer-2.17.16-airflow-2.11.1
Exemplo de saída:
Waiting for [projects/example-project/locations/us-central1/environments/
example-environment] to be checked for PyPI package conflicts when upgrading
to composer-2.17.16-airflow-2.11.1. Operation [projects/example-project/locations/
us-central1/operations/04d0e8b2-...]...done.
...
Response:
'@type': type.googleapis.com/
google.cloud.orchestration.airflow.service.v1.CheckUpgradeResponse
buildLogUri: ...
containsPypiModulesConflict: CONFLICT
pypiConflictBuildLogExtract: |-
The Cloud Build image build failed: Build failed; check build logs for
details. Full log can be found at ...
Error details: tensorboard 2.2.2 has requirement
setuptools>=41.0.0, but you have setuptools 40.3.0.
Como alternativa, é possível executar uma verificação de upgrade de forma assíncrona. Use o
argumento --async para fazer uma chamada assíncrona e verifique o resultado com
o comando
gcloud composer operations describe.
API
Crie uma solicitação de API environments.checkUpgrade.
Especifique a versão da imagem no campo imageVersion:
{
"imageVersion": "IMAGE_VERSION"
}
Substitua IMAGE_VERSION pela
versão da imagem do Airflow gerenciado para a qual você quer
fazer upgrade, no formato composer-a.b.c-airflow-x.y.z.
Também é possível usar aliases de versão.
Verificar se há conflitos com o Airflow Gerenciado (3ª geração)
Embora não seja possível migrar o ambiente do Airflow Gerenciado (2ª geração) para o Airflow Gerenciado (3ª geração) no local, é possível verificar se há problemas de compatibilidade usando uma verificação de upgrade. Recomendamos fazer isso antes de migrar para o Airflow Gerenciado (3ª geração).
Para verificar a compatibilidade com o Airflow Gerenciado (3ª geração), faça uma verificação de upgrade regular do ambiente do Airflow Gerenciado (2ª geração) e especifique uma versão do Airflow Gerenciado (3ª geração) como destino.
Cada conflito relatado pode ter os seguintes tipos:
BLOCKINGrelata elementos de configuração de ambiente incompatíveis que não são compatíveis com o Airflow gerenciado (3ª geração). Recomendamos resolver esses conflitos antes de iniciar uma migração para o Airflow Gerenciado (3ª geração).NON_BLOCKINGrelata elementos de configuração do ambiente que são diferentes no Airflow Gerenciado (3ª geração) e podem causar um comportamento inesperado. Por exemplo, as alterações dos valores padrão, como janelas de manutenção padrão, são relatadas como conflitos não bloqueantes. Recomendamos verificar se esses conflitos podem causar problemas antes de iniciar o processo de migração.Os conflitos de pacotes do PyPI também são informados como parte dessa verificação. Eles são informados separadamente dos conflitos de configuração, da mesma forma que em uma verificação de compatibilidade de pacotes PyPI normal.
Console
Para verificar a compatibilidade com o Airflow Gerenciado (3ª geração), use CLI gcloud ou a API Cloud Composer. O console doGoogle Cloud só é compatível com verificações de compatibilidade de pacotes PyPI.
gcloud
Para verificar a compatibilidade com o Airflow Gerenciado (3ª geração), execute o comando environments check-upgrade e especifique uma versão do Airflow Gerenciado (3ª geração) como destino.
gcloud composer environments check-upgrade \
ENVIRONMENT_NAME \
--location LOCATION \
--image-version COMPOSER_3_IMAGE_VERSION
Substitua:
ENVIRONMENT_NAMEpelo nome do ambienteLOCATIONpela região em que o ambiente está localizado;COMPOSER_3_IMAGE_VERSIONpela versão de destino da imagem do Airflow Gerenciado (3ª geração), no formatocomposer-3-airflow-x.y.z-build.t. Também é possível usar aliases de versão do Airflow Gerenciado (Geração 3).
Exemplo:
gcloud composer environments check-upgrade example-environment \
--location us-central1 \
--image-version composer-3-airflow-2
Exemplos de mensagens de conflito:
...
- message: Error validating property [core]unit_test_mode. Overriding [core]
unit_test_mode is not permitted.
type: BLOCKING
- message: Environment variables [GOOGLE_CLOUD_PROJECT] may not be overridden.
type: BLOCKING
- message: You have to specify Worker CPUs to be 0.5, 1.0 or multiples of 2.0.
type: BLOCKING
- message: The environment uses a default maintenance window, which is
different in Composer 2 and Composer 3. Unless set to a custom value, the
maintenance window will be changed to a new default after the upgrade.
type: NON_BLOCKING
...
Como alternativa, é possível executar essa verificação de forma assíncrona. Use o
argumento --async para fazer uma chamada assíncrona e verifique o resultado com
o comando
gcloud composer operations describe.
API
Crie uma solicitação de API environments.checkUpgrade.
Especifique a versão da imagem no campo imageVersion:
{
"imageVersion": "COMPOSER_3_IMAGE_VERSION"
}
Substitua COMPOSER_3_IMAGE_VERSION pela versão de imagem do Airflow Gerenciado (3ª geração) de destino, no formato composer-3-airflow-x.y.z-build.t. Também é possível usar
aliases de versão do Airflow Gerenciado (3ª geração).
Fazer upgrade do ambiente
Para fazer upgrade do ambiente para uma versão mais recente do Airflow Gerenciado ou do Airflow:
Console
No console do Google Cloud , acesse a página Ambientes.
Na lista de ambientes, clique no nome do seu ambiente. A página Detalhes do ambiente é aberta.
Acesse a guia Configuração do ambiente.
Localize o item versão de imagem e clique em Fazer upgrade.
No menu suspenso Versão da imagem, selecione uma versão do Airflow Gerenciado para fazer upgrade.
Clique em Fazer upgrade.
gcloud
gcloud composer environments update \
ENVIRONMENT_NAME \
--location LOCATION \
--image-version IMAGE_VERSION
Substitua:
ENVIRONMENT_NAMEpelo nome do ambienteLOCATIONpela região em que o ambiente está localizado;-
IMAGE_VERSIONpela versão da imagem do Airflow Gerenciado para a qual você quer fazer upgrade, no formatocomposer-a.b.c-airflow-x.y.z. Também é possível usar aliases de versão.
Exemplo:
gcloud composer environments update \
example-environment \
--location us-central1 \
--image-version composer-2.17.16-airflow-2.11.1
API
Crie uma solicitação de API
environments.patch.Nesta solicitação:
No parâmetro
updateMask, especifique a máscaraconfig.softwareConfig.imageVersion.No corpo da solicitação, no campo
imageVersion, especifique uma nova versão para fazer upgrade.
Exemplo:
// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.softwareConfig.imageVersion
{
"config": {
"softwareConfig": {
"imageVersion": "composer-2.17.16-airflow-2.11.1"
}
}
}
Terraform
O campo image_version no bloco config.software_config
controla
a versão de imagem do Airflow Gerenciado do seu ambiente. Nesse
campo, especifique uma nova versão de imagem do Airflow Gerenciado no
formato composer-a.b.c-airflow-x.y.z.
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
software_config {
image_version = "IMAGE_VERSION"
}
}
}
Substitua:
ENVIRONMENT_NAMEpelo nome do ambienteLOCATIONpela região em que o ambiente está localizado;IMAGE_VERSIONpela versão de imagem do Airflow Gerenciado para a qual você quer fazer upgrade, no formatocomposer-a.b.c-airflow-x.y.z. Também é possível usar todos os aliases de versão.
Exemplo:
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
software_config {
image_version = "composer-2.17.16-airflow-2.11.1"
}
}
}
A seguir
- Solução de problemas de atualizações e upgrades
- Lista de versões
- Controle de versões do Airflow gerenciado
- Atualizar ambientes