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:
Você usa o intervalo
10.0.0.0/8
para 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/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 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 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 ambienteLOCATION
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 ambienteLOCATION
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.