Ativar o agente de mascaramento de IP em ambientes do Airflow gerenciado

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:

  1. Você usa o intervalo 10.0.0.0/8 para VMs e somente esse intervalo é permitido pelas regras de firewall.

  2. Para salvar intervalos de rede, use um intervalo diferente (por exemplo, 192.168.0.0/16) para pods no cluster do ambiente.

  3. 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/16 e o descartará devido a uma regra de firewall. Com o agente de mascaramento de IP ativado e configurado, o serviço recebe solicitações de 10.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_NAME pelo nome do ambiente
  • LOCATION pela 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_ID com o ID do projeto.
  • LOCATION pela região em que o ambiente está localizado
  • ENVIRONMENT_NAME pelo 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_NAME pelo nome do ambiente
  • LOCATION pela 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.

A seguir