Ativar o agente de mascaramento de IP em ambientes do Cloud Composer

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

Nesta página, descrevemos como ativar o agente de mascaramento de IP para seu ambiente.

Sobre o agente de mascaramento de IP no Cloud Composer

O Cloud Composer é 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 Cloud Composer 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 console do Google Cloud.

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 Cloud Composer, consulte Criar ambiente.

Console

Não é possível ativar o agente de mascaramento de IP no console do Google Cloud.

gcloud

Quando um ambiente é criado, o argumento --enable-ip-masq-agent ativa o agente de mascaramento de IP. Também é necessário ativar o alias de IP com o argumento --enable-ip-alias.

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-1.20.12-airflow-1.10.15 \
    --enable-ip-alias \
    --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-1.20.12-airflow-1.10.15 \
    --enable-ip-alias \
    --enable-ip-masq-agent

API

Crie uma solicitação de API environments.create. Especifique a configuração no recurso Environment.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "softwareConfig": {
      "imageVersion": "composer-1.20.12-airflow-1.10.15"
    },
    "nodeConfig": {
      "ipAllocationPolicy": {
        "useIpAliases": true,
      },
      "enableIpMasqAgent": true
    }
  }
}

Substitua:

  • PROJECT_ID pelo 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-1.20.12-airflow-1.10.15"
      },
      "nodeConfig": {
        "ipAllocationPolicy": {
          "useIpAliases": true,
        },
        "enableIpMasqAgent": true
      }
    }
  }

Terraform

Ao criar um ambiente, o campo enable_ip_masq_agent no bloco node_config ativa o agente de mascaramento de IP. Também é necessário ativar o alias de IP com o campo use_ip_aliases no bloco ip_allocation_policy.

resource "google_composer_environment" "example_environment" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {
    software_config {
      image_version = "composer-1.20.12-airflow-1.10.15"
    }
    node_config {
      ip_allocation_policy = [{
        use_ip_aliases = true
        // Other networking configuration
      }]
      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-1.20.12-airflow-1.10.15"
    }
    node_config {
      ip_allocation_policy = [{
        use_ip_aliases = true
        // Other networking configuration
      }]
      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 em Cloud Composer 1, consulte Como configurar um agente de mascaramento de IP em clusters padrão.

A seguir