Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
Esta página explica como o seu ambiente pode aceder a uma rede VPC no Cloud Composer 3, fornece instruções para ligar um ambiente a uma rede VPC e descreve como desativar uma ligação configurada anteriormente.
Se quiser ativar ou desativar o acesso à Internet para os componentes do Airflow do seu ambiente, consulte o artigo Alterar o tipo de rede do ambiente (IP privado ou público).
Se quiser desativar ou ativar o acesso à Internet apenas quando instalar pacotes PyPI, consulte o artigo Configure o acesso à Internet quando instalar pacotes PyPI.
Se quiser configurar o trabalho em rede da VPC partilhada, consulte o artigo Configurar a VPC partilhada para obter informações sobre a configuração de projetos e autorizações.
Acerca do acesso à rede da VPC
No Cloud Composer 3, pode ativar o acesso a uma rede VPC para um ambiente.
Se ativar o acesso a uma rede de VPC para um ambiente:
Os componentes do Airflow do seu ambiente podem aceder a pontos finais de rede privada na sua rede VPC. Por exemplo, o código DAG pode aceder a recursos localizados na sua rede VPC através de uma ligação do Airflow configurada.
Se o seu ambiente usar redes IP privadas, todo o tráfego interno é encaminhado para a sua rede VPC, exceto o tráfego para APIs, serviços e domínios Google que estão disponíveis para ambientes de IP privado através do acesso privado à Google.
Consoante a forma como configura a sua rede VPC, um ambiente de IP privado pode obter acesso à Internet através da sua rede VPC.
As zonas DNS privadas definidas na sua rede VPC estão automaticamente disponíveis para os componentes do Airflow do seu ambiente.
O ambiente reserva dois endereços IP na sub-rede da VPC e usa dois endereços IP adicionais durante a manutenção e as atualizações. Certifique-se de que estão disponíveis quatro endereços IP por ambiente na sub-rede da VPC.
O Cloud Composer usa uma associação de rede para ligar o seu ambiente a uma rede de VPC:
Se especificar uma rede VPC e uma sub-rede, o Cloud Composer cria uma nova associação de rede no seu projeto. Este anexo é eliminado depois de eliminar um ambiente, desativar a ligação a uma rede da VPC ou substituir os parâmetros de ligação da VPC.
Se especificar um anexo de rede existente, tem de estar localizado no mesmo projeto que o ambiente. Este anexo não é eliminado depois de eliminar um ambiente, desativar a associação ou substituir os parâmetros de associação da VPC.
Na rede da VPC partilhada:
Certifique-se de que configurou a rede VPC partilhada para o Cloud Composer. Consulte o artigo Configure a VPC partilhada para ver informações sobre a configuração de projetos e autorizações para o Cloud Composer.
Depois de configurar a rede VPC partilhada, pode ligar o seu ambiente a uma rede VPC do projeto anfitrião. Se usar uma associação de rede existente, tem de ser criada no projeto de serviço (onde o ambiente está localizado) e associada a uma rede de VPC partilhada.
Limitações para peering de DNS transitivo no Cloud Composer 3
As limitações para a interligação de DNS transitiva aplicam-se a um ambiente do Cloud Composer 3 da seguinte forma:
- O Cloud DNS tem uma limitação de um salto transitivo, o que significa que são suportados um total de dois saltos.
- No Cloud Composer 3, os componentes do seu ambiente são executados no projeto de inquilino e comunicam com o projeto onde o ambiente está localizado através de um intercâmbio de VPC. O salto transitivo é usado pelo peering de VPC do projeto de inquilino, pelo que é possível usar apenas um salto no total.
Acerca do intervalo de IPs internos do ambiente
Os ambientes do Cloud Composer 3 requerem vários endereços IP para os respetivos componentes que são executados no projeto de inquilino, como o cluster do seu ambiente e o proxy do Cloud SQL. Estes endereços IP são retirados do intervalo de IP interno do ambiente.
O intervalo de IPs internos predefinido é
100.64.128.0/20
.Pode especificar um intervalo de IPs internos diferente quando cria um ambiente. Este intervalo tem de usar uma máscara
/20
.Não pode alterar o intervalo de IPs internos de um ambiente existente.
O intervalo de IPs internos interage com a sua rede VPC das seguintes formas:
O intervalo de IPs interno não pode entrar em conflito com a sub-rede da VPC à qual o ambiente do Cloud Composer está ligado. Não é possível ativar uma ligação com uma sub-rede da VPC que se sobreponha ao intervalo de IPs internos.
Se o intervalo de IP interno de um ambiente se sobrepuser aos intervalos de rede da VPC, os pontos finais da rede da VPC que tenham endereços IP sobrepostos não são acessíveis a partir do ambiente.
Por exemplo, se o intervalo interno for
100.64.128.0/20
, qualquer pedido ao ponto final100.64.128.1
na sua rede de VPC falha porque o pedido não sai do projeto de inquilino.O intervalo de IP interno não está reservado. Pode usar o mesmo intervalo de IP interno para vários ambientes sem configuração adicional, porque as redes VPC internas usadas por diferentes ambientes estão separadas.
Pode usar os endereços IP do intervalo interno para outros fins, desde que os DAGs e as tarefas no seu ambiente não lhes façam pedidos.
Ligue-se a uma rede de VPC
Consola
Na Google Cloud consola, aceda à página Ambientes.
Na lista de ambientes, clique no nome do seu ambiente. É apresentada a página Detalhes do ambiente.
Aceda ao separador Configuração do ambiente.
Na secção Configuração de rede, encontre o item Anexo de rede e clique em Editar.
Na caixa de diálogo Anexo de rede:
Para criar uma nova associação de rede, na lista Associação de rede, selecione Criar uma nova associação de rede. Nas listas Rede e Sub-rede, selecione uma rede de VPC e uma sub-rede.
Para usar um anexo de rede existente, na lista Anexo de rede, selecione um anexo.
Clique em Guardar.
gcloud
Os seguintes argumentos da CLI do Google Cloud especificam os parâmetros de ligação de rede VPC:
--network
: ID da rede da VPC.--subnetwork
: ID da sub-rede da VPC.--network-attachment
: em alternativa, use uma associação de rede existente.
Novo anexo de rede
Para ligar o seu ambiente a uma rede VPC através de uma nova associação de rede, execute o seguinte comando da CLI Google Cloud:
gcloud beta composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--network NETWORK_ID \
--subnetwork SUBNETWORK_ID
Substitua o seguinte:
ENVIRONMENT_NAME
: o nome do ambienteLOCATION
: a região onde o ambiente está localizadoNETWORK_ID
: ID da rede VPCSUBNETWORK_ID
: ID da sub-rede da VPC
Exemplo:
gcloud beta composer environments update example-environment \
--location us-central1 \
--network projects/example-project/global/networks/example-network \
--subnetwork projects/example-project/regions/us-central1/subnetworks/example-subnetwork
Associação de rede existente
Para ligar o seu ambiente a uma rede VPC através de uma nova associação de rede, execute o seguinte comando da CLI Google Cloud:
gcloud beta composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--network-attachment NETWORK_ATTACHMENT_ID
Substitua o seguinte:
ENVIRONMENT_NAME
: o nome do ambienteLOCATION
: a região onde o ambiente está localizadoNETWORK_ATTACHMENT_ID
: o anexo de rede no formatoprojects/{project}/regions/{region}/networkAttachments/{networkAttachment}
.
Exemplo:
gcloud beta composer environments update example-environment \
--location us-central1 \
--network-attachment projects/example-project/regions/us-central1/networkAttachments/example-network-attachment
API
Crie um pedido de API
environments.patch
.Neste pedido:
Para criar uma nova associação de rede:
No parâmetro
updateMask
, especifique a máscaraconfig.node_config.network,config.node_config.subnetwork
.No corpo do pedido, nos campos
network
esubnetwork
, especifique os IDs da rede de VPC e da sub-rede.
Para usar uma associação de rede existente:
No parâmetro
updateMask
, especifique aconfig.node_config.composer_network_attachment
máscara.No corpo do pedido, indique um valor para a associação de rede existente no formato
projects/{project}/regions/{region}/networkAttachments/{networkAttachment}
.
Exemplo (associação de nova rede):
// PATCH https://composer.googleapis.com/v1beta1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.node_config.network,config.node_config.subnetwork
"config": {
"nodeConfig": {
"network": "projects/example-project/global/networks/example-network",
"subnetwork": "projects/example-project/regions/us-central1/subnetworks/example-subnetwork"
}
}
Exemplo (anexo de rede existente):
// PATCH https://composer.googleapis.com/v1beta1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.node_config.composer_network_attachment
"config": {
"nodeConfig": {
"composerNetworkAttachment": "projects/example-project/regions/us-central1/networkAttachments/example-network-attachment"
}
}
Terraform
Os seguintes campos no bloco node_config
especificam os parâmetros de ligação
da rede VPC:
network
: ID da rede da VPC.subnetwork
: ID da sub-rede da VPC.composer_network_attachment
: em alternativa, use uma associação de rede existente.
Novo anexo de rede
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
node_config {
network = NETWORK_ID
subnetwork = SUBNETWORK_ID
}
}
}
Substitua o seguinte:
ENVIRONMENT_NAME
: o nome do seu ambiente.LOCATION
: a região onde o ambiente está localizado.NETWORK_ID
: ID da rede VPCSUBNETWORK_ID
: ID da sub-rede da VPC
Exemplo (associação de nova rede):
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
node_config {
network = "projects/example-project/global/networks/example-network"
subnetwork = "projects/example-project/regions/us-central1/subnetworks/example-subnetwork"
}
... other configuration parameters
}
}
Associação de rede existente
Como resultado, o ambiente vai deixar de usar o anexo. Para resolver este problema, certifique-se de que o Terraform ignora as alterações ao parâmetro producer_accept_lists
do anexo, da seguinte forma:
resource "google_compute_network_attachment" "NETWORK_ATTACHMENT_ID" {
lifecycle {
ignore_changes = [producer_accept_lists]
}
# ... other configuration parameters
}
Posteriormente, especifique este anexo para um ambiente. Também pode especificar um anexo que não é gerido no Terraform. Consulte o exemplo.
resource "google_composer_environment" "example" {
name = "example-environment"
region = "us-central1"
config {
node_config {
composer_network_attachment = google_compute_network_attachment.NETWORK_ATTACHMENT_ID.id
}
# ... other configuration parameters
}
}
Substitua o seguinte:
ENVIRONMENT_NAME
: o nome do seu ambiente.LOCATION
: a região onde o ambiente está localizado.NETWORK_ATTACHMENT_ID
: o ID do anexo de rede.
Exemplo (anexo de rede existente):
resource "google_compute_network_attachment" "example" {
lifecycle {
ignore_changes = [producer_accept_lists]
}
# ... other configuration parameters
}
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
node_config {
# Attachment is managed in Terraform:
composer_network_attachment = google_compute_network_attachment.NETWORK_ATTACHMENT_ID.id
# Attachment is not managed in Terraform:
# composer_network_attachment = projects/example-project/regions/us-central1/networkAttachments/example-network-attachment
}
# ... other configuration parameters
}
}
Desative a ligação a uma rede de VPC
Consola
Na Google Cloud consola, aceda à página Ambientes.
Na lista de ambientes, clique no nome do seu ambiente. É apresentada a página Detalhes do ambiente.
Aceda ao separador Configuração do ambiente.
Na secção Configuração de rede, encontre o item Anexo de rede e clique em Editar.
Na caixa de diálogo Anexo de rede, selecione Nenhum e clique em Guardar.
gcloud
Os argumentos --disable-vpc-connectivity
desativam a ligação
da rede da VPC do seu ambiente:
gcloud beta composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--disable-vpc-connectivity
Substitua o seguinte:
ENVIRONMENT_NAME
: o nome do ambienteLOCATION
: a região onde o ambiente está localizado
Exemplo:
gcloud beta composer environments update example-environment \
--location us-central1 \
--disable-vpc-connectivity
API
Crie um pedido de API
environments.patch
.Neste pedido:
No parâmetro
updateMask
, especifique a máscaraconfig.node_config.network,config.node_config.subnetwork
.No corpo do pedido, nos campos
network
esubnetwork
, especifique valores vazios.
Exemplo:
// PATCH https://composer.googleapis.com/v1beta1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.node_config.network,config.node_config.subnetwork
"config": {
"nodeConfig": {
"network": "",
"subnetwork": ""
}
}
Terraform
Não é possível desassociar uma rede VPC através do Terraform. Em alternativa, pode anexar outra rede VPC no lugar desta ou desanexar a rede através de outras ferramentas, como a CLI do Google Cloud.
O que se segue?
- Altere o tipo de rede do ambiente (IP privado ou público)
- Configure o acesso à Internet ao instalar pacotes PyPI