Airflow gerenciado (Geração 3) | Airflow gerenciado (Geração 2) | Airflow gerenciado (Geração 1 legada)
Nesta página, explicamos como criar um ambiente de IP particular que usa o Private Service Connect em vez de peerings de VPC.
Para informações gerais sobre como criar ambientes de IP particular, consulte Configurar um ambiente de IP particular.
Sobre o Private Service Connect no Airflow gerenciado
Os componentes do ambiente são distribuídos entre o locatário e o projeto do cliente. Em ambientes de IP particular, os componentes localizados nesses dois projetos se conectam usando peerings VPC. Os peerings de VPC têm algumas limitações, incluindo o limite de número máximo de peerings em uma VPC. Esses limites podem se tornar mais evidentes se você usa redes de grande escala com ambientes do Airflow gerenciado.
Com suporte do Private Service Connect no Airflow gerenciado, os ambientes de IP particular se comunicam internamente sem o uso de peerings de VPC. Esses ambientes usam o IP privado com arquitetura de PSC.
Antes de começar
O suporte do Private Service Connect está disponível apenas no Airflow gerenciado (Geração 2).
Só é possível ativar o Private Service Connect quando você cria um novo ambiente. Não é possível alternar um ambiente existente para usar o Private Service Connect.
Seu ambiente precisa ser um ambiente de IP particular. Como os peerings de VPC não são usados, não é necessário especificar os intervalos CIDR para a instância do Cloud SQL e a rede interna do Airflow gerenciado.
Se a restrição da política da organização Desativar o Private Service Connect para consumidores negar endpoints SERVICE_PRODUCER, não será possível criar ambientes com o Private Service Connect. Essa política não afeta os ambientes do Airflow gerenciado atuais com o Private Service Connect. Esses ambientes podem operar quando essa política está ativada.
Ativar o Private Service Connect ao criar um ambiente
Console
Para criar um ambiente com o Private Service Connect, selecione o tipo de conectividade Private Service Connect ao criar um ambiente de IP particular. Em seguida, especifique a sub-rede para a conexão do Private Service Connect.
Ao criar um ambiente de IP particular:
Na seção Configuração de rede, expanda o item Mostrar configuração de rede.
Na seção Tipo de rede, selecione a opção Ambiente de IP particular para criar um ambiente de IP particular.
Na seção Conectividade do Composer, selecione Private Service Connect.
Na lista suspensa Sub-rede de conexão do Composer, selecione a sub-rede para endpoints do Private Service Connect.
É possível usar a sub-rede do ambiente.
Como alternativa, especifique uma sub-rede diferente. Dessa forma, você tem mais controle sobre o intervalo CIDR em que o endereço IP do endpoint do PSC é selecionado.Esse intervalo pode ser compartilhado por vários ambientes do Airflow gerenciado. Cada ambiente exige um endereço IP.
Especifique outros parâmetros para o ambiente de IP particular.
gcloud
Para criar um ambiente com o Private Service Connect, use
o argumento --connection-subnetwork ao criar um ambiente de
IP particular. Em seguida, especifique a sub-rede para a conexão do Private Service Connect.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-2.17.16-airflow-2.11.1 \
--enable-private-environment \
--web-server-allow-all \
--connection-subnetwork ENVIRONMENT_PSC_SUBNETWORK
Substitua:
ENVIRONMENT_NAMEpelo nome do ambiente;LOCATIONpela região em que o ambiente está localizado;ENVIRONMENT_PSC_SUBNETWORKpelo URI da sub-rede para endpoints do Private Service Connect.É possível usar a sub-rede do ambiente.
Como alternativa, especifique uma sub-rede diferente. Dessa forma, você tem mais controle sobre o intervalo CIDR em que o endereço IP do endpoint do PSC é selecionado. Esse intervalo pode ser compartilhado por vários ambientes do Airflow gerenciado. Cada ambiente exige um endereço IP.
Exemplo:
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-2.17.16-airflow-2.11.1 \
--enable-private-environment \
--web-server-allow-all \
--connection-subnetwork "projects/example-project/regions/us-central1/subnetworks/default"
API
Crie
uma solicitação de API environments.create. No
recurso Ambiente, especifique os
parâmetros de configuração da conexão do Private Service Connect.
// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments
{
"name": "ENVIRONMENT_NAME",
"config": {
"softwareConfig": {
"imageVersion": "composer-2.17.16-airflow-2.11.1"
},
"nodeConfig": {
"network": "ENVIRONMENT_NETWORK",
"subnetwork": "ENVIRONMENT_SUBNETWORK"
},
"privateEnvironmentConfig": {
"enablePrivateEnvironment": true,
"privateClusterConfig": {
"enablePrivateEndpoint": false
},
"cloudComposerConnectionSubnetwork": "ENVIRONMENT_PSC_SUBNETWORK"
}
"webServerNetworkAccessControl": {
"allowedIpRanges": [
{
"value": "0.0.0.0/0",
"description": "Allows access from all IPv4 addresses"
},
{
"value": "::0/0",
"description": "Allows access from all IPv6 addresses"
}
]
}
}
}
Substitua:
ENVIRONMENT_NAMEpelo nome do ambiente;ENVIRONMENT_NETWORKpelo URI da rede do ambiente.ENVIRONMENT_SUBNETWORKpelo URI da sub-rede do ambiente;ENVIRONMENT_PSC_SUBNETWORKpelo URI da sub-rede para endpoints de PSC;É possível usar a sub-rede do ambiente.
Como alternativa, especifique uma sub-rede diferente. Dessa forma, você tem mais controle sobre o intervalo CIDR em que o endereço IP do endpoint do PSC é selecionado. Esse intervalo pode ser compartilhado por vários ambientes do Airflow gerenciado. Cada ambiente exige um endereço IP.
Exemplo:
// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments
{
"name": "example-environment",
"config": {
"softwareConfig": {
"imageVersion": "composer-2.17.16-airflow-2.11.1"
},
"nodeConfig": {
"network": "projects/example-project/global/networks/default",
"subnetwork": "projects/example-project/regions/us-central1/subnetworks/default"
},
"privateEnvironmentConfig": {
"enablePrivateEnvironment": true,
"privateClusterConfig": {
"enablePrivateEndpoint": false
},
"cloudComposerConnectionSubnetwork": "projects/example-project/regions/us-central1/subnetworks/default"
}
"webServerNetworkAccessControl": {
"allowedIpRanges": [
{
"value": "0.0.0.0/0",
"description": "Allows access from all IPv4 addresses"
},
{
"value": "::0/0",
"description": "Allows access from all IPv6 addresses"
}
]
}
}
}
Terraform
Quando você cria um ambiente, o campo cloud_composer_connection_subnetwork no bloco private_environment_config ativa o Private Service Connect.
resource "google_composer_environment" "example_environment" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
software_config {
image_version = "composer-2.17.16-airflow-2.11.1"
}
node_config {
network = "ENVIRONMENT_NETWORK"
subnetwork = "ENVIRONMENT_SUBNETWORK"
}
private_environment_config {
// Other private IP environment parameters
cloud_composer_connection_subnetwork = "ENVIRONMENT_PSC_SUBNETWORK"
}
web_server_network_access_control {
allowed_ip_range {
value = "0.0.0.0/0"
description = "Allows access from all IPv4 addresses"
}
allowed_ip_range {
value = "::0/0"
description = "Allows access from all IPv6 addresses"
}
}
}
}
Substitua:
ENVIRONMENT_NAMEpelo nome do ambiente;ENVIRONMENT_NETWORKpelo URI da rede do ambiente.ENVIRONMENT_SUBNETWORKpelo URI da sub-rede do ambiente;ENVIRONMENT_PSC_SUBNETWORKpelo URI da sub-rede para endpoints de PSC;É possível usar a sub-rede do ambiente.
Como alternativa, especifique uma sub-rede diferente. Dessa forma, você tem mais controle sobre o intervalo CIDR em que o endereço IP do endpoint do PSC é selecionado. Esse intervalo pode ser compartilhado por vários ambientes do Airflow gerenciado. Cada ambiente exige um endereço IP.
Exemplo:
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
environment_size = "ENVIRONMENT_SIZE_SMALL"
software_config {
image_version = "composer-2.17.16-airflow-2.11.1"
}
node_config {
network = "projects/example-project/global/networks/default"
subnetwork = "projects/example-project/regions/us-central1/subnetworks/default"
}
private_environment_config {
// Other private IP environment parameters
enable_private_endpoint = "true"
cloud_composer_connection_subnetwork = "projects/example-project/regions/us-central1/subnetworks/default"
}
web_server_network_access_control {
allowed_ip_range {
value = "0.0.0.0/0"
description = "Allows access from all IPv4 addresses"
}
allowed_ip_range {
value = "::0/0"
description = "Allows access from all IPv6 addresses"
}
}
}
}
A seguir
- Como configurar ambientes de IP particular
- Como criar ambientes
- Arquitetura de ambiente
- Sobre ambientes de IP particular