Airflow gerenciado (Geração 3) | Airflow gerenciado (Geração 2) | Airflow gerenciado (Geração 1 legada)
Esta página descreve como ativar o agente de mascaramento de IP para seu ambiente.
Sobre o agente de mascaramento de IP no Airflow gerenciado
O Airflow gerenciado é compatível com o agente de mascaramento de IP nos seus ambientes.
Mascaramento de IP é uma forma de conversão de endereços de rede (NAT, na sigla em inglês) usada para realizar conversões de endereço IP de muitos para um. Isso permite a vários clientes acessar um destino usando um único endereço IP.
O Airflow gerenciado executa suas cargas de trabalho no GKE. Para a função correta, ela requer intervalos de IP para nós (VMs), além de pods e serviços do GKE. Quando os DAGs e as tarefas do Airflow se comunicam com outros serviços, eles usam IPs de pod, e esses intervalos precisam ser roteáveis de e para qualquer destino com que as tarefas interajam.
Com o agente de mascaramento de IP, você tem a opção de traduzir endereços IP do pod para endereços IP do nó. Assim, os destinos e serviços segmentados pelos DAGs e as tarefas do Airflow só recebem pacotes dos endereços IP do nó e não dos endereços IP do pod. Isso é útil em ambientes que esperam receber somente pacotes de endereços IP de nós ou em que os intervalos de IP do pod não sejam roteáveis fora do cluster.
Além disso, é possível usar o agente de mascaramento de IP para salvar intervalos de rede na configuração de rede. Por exemplo, é possível usar um intervalo de rede separado para os pods dentro do cluster do ambiente e mascarar esse tráfego como proveniente do intervalo de endereços IP do nó. Desse modo, você economiza espaço de endereço IP em um intervalo usando endereços IP de um intervalo diferente para pods no cluster do seu ambiente.
Exemplo:
Você usa o intervalo
10.0.0.0/8para VMs e somente esse intervalo é permitido pelas regras de firewall.Para salvar intervalos de rede, use um intervalo diferente (por exemplo,
192.168.0.0/16) para pods no cluster do ambiente.Para se conectar a qualquer serviço de um pod (worker do Airflow), o mascaramento de IP é necessário. Caso contrário, o serviço receberá o tráfego de
192.168.0.0/16e o descartará devido a uma regra de firewall. Com o agente de mascaramento de IP ativado e configurado, o serviço recebe solicitações de10.0.0.0/8, que são aceitas.
Antes de começar
Não é possível ativar o agente de mascaramento de IP no Google Cloud console.
Para usar esse recurso, crie um ambiente com o GKE 1.22.7 ou versão mais recente.
O agente de mascaramento de IP não está disponível para ambientes criados em versões anteriores do GKE, mesmo que o GKE tenha sido atualizado para a versão 1.22.7 e mais recentes.
Se você ativar o agente de mascaramento de IP, a EgressNatPolicy padrão do GKE será substituída pela definição do Airflow gerenciado. Se o agente de mascaramento de IP não estiver ativado, o tráfego de saída não será mascarado e usará a EgressNatPolicy padrão do GKE.
Ativar o agente de mascaramento de IP para um ambiente existente
Não é possível ativar o agente de mascaramento de IP para um ambiente existente.
Ativar o agente de mascaramento de IP ao criar um ambiente
É possível ativar o agente de mascaramento de IP ao criar um ambiente.
Para mais informações sobre como criar ambientes do Airflow gerenciado, consulte Criar um ambiente.
Console
Não é possível ativar o agente de mascaramento de IP no Google Cloud console.
gcloud
Quando um ambiente é criado, o argumento --enable-ip-masq-agent ativa o agente de mascaramento de IP.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-2.17.2-airflow-2.11.1 \
--enable-ip-masq-agent
Substitua:
ENVIRONMENT_NAMEpelo nome do ambienteLOCATIONpela região em que o ambiente está localizado
Exemplo:
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-2.17.2-airflow-2.11.1 \
--enable-ip-masq-agent
API
Crie uma solicitação de API environments.create.
Especifique a configuração no Environment
recurso.
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"config": {
"softwareConfig": {
"imageVersion": "composer-2.17.2-airflow-2.11.1"
},
"nodeConfig": {
"enableIpMasqAgent": true
}
}
}
Substitua:
PROJECT_IDcom o ID do projeto.LOCATIONpela região em que o ambiente está localizadoENVIRONMENT_NAMEpelo nome do ambiente
Exemplo:
// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments
{
"name": "projects/example-project/locations/us-central1/environments/example-environment",
"config": {
"softwareConfig": {
"imageVersion": "composer-2.17.2-airflow-2.11.1"
},
"nodeConfig": {
"enableIpMasqAgent": true
}
}
}
Terraform
Ao criar um ambiente, o campo enable_ip_masq_agent no bloco node_config ativa o agente de mascaramento de IP.
resource "google_composer_environment" "example_environment" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
software_config {
image_version = "composer-2.17.2-airflow-2.11.1"
}
node_config {
enable_ip_masq_agent = true
}
}
Substitua:
ENVIRONMENT_NAMEpelo nome do ambienteLOCATIONpela região em que o ambiente está localizado
Exemplo:
resource "google_composer_environment" "example_environment" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
software_config {
image_version = "composer-2.17.2-airflow-2.11.1"
}
node_config {
enable_ip_masq_agent = true
}
}
}
Configurar o agente de mascaramento de IP
Para mais informações sobre como usar e configurar o agente de mascaramento de IP no Airflow gerenciado (Geração 2), consulte Usar a política NAT de saída para configurar o mascaramento de IP em clusters do Autopilot.