Conectar um ambiente a uma rede VPC

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

Nesta página, explicamos como o ambiente pode acessar uma rede VPC em O Cloud Composer 3 fornece instruções para conectar um ambiente a uma VPC rede e descreve como desativar uma conexão configurada anteriormente.

Sobre o acesso à rede VPC

No Cloud Composer 3, é possível ativar o acesso de uma de nuvem.

Se você ativar o acesso a uma rede VPC para um ambiente:

  • Componentes do Airflow do seu ambiente pode acessar endpoints de rede privada na sua rede VPC. Por exemplo: o código DAG pode acessar recursos localizados na rede VPC por uma configurou a conexão do Airflow.

  • Se o ambiente usar rede IP privada, todo o tráfego interno, exceto o tráfego para a API Google Services, é roteado para sua rede VPC.

  • Dependendo de como você configurar sua rede VPC, um IP privado pode ter acesso à Internet pela sua rede VPC.

  • Seja qual for o status de acesso à rede VPC, o acesso às APIs Google Services sempre é possível.

  • Zonas de DNS particular definidas na VPC ficam disponíveis automaticamente para as instâncias de Airflow componentes de solução.

  • O ambiente reserva dois endereços IP na sub-rede VPC.

O Cloud Composer usa anexo de rede para conectar sua para uma rede VPC:

  • Se você especificar uma rede VPC e uma sub-rede, o Cloud Composer cria um novo anexo de rede no projeto. Este anexo foi excluído Depois que você excluir um ambiente, desativar a conexão a uma rede VPC ou substituir a VPC parâmetros de conexão.

  • Se você especificar anexo de rede atual, ele precisa estar no mesmo projeto que o ambiente. Isso anexo não é excluído depois que você exclui um ambiente, desativa a conexão ou substitui os parâmetros de conexão da VPC.

  • Na rede VPC compartilhada:

    • Verifique se você configurou a rede VPC compartilhada para Cloud Composer Consulte Configure a VPC compartilhada para informações sobre como configurar projetos e permissões do Cloud Composer.

    • Depois de configurar a rede VPC compartilhada, é possível conectar para uma rede VPC do projeto host. Se você usa uma anexo de rede atual, ele precisa ser criado no projeto de serviço (onde o ambiente está localizado) e anexado a uma VPC compartilhada em uma rede VPC.

Sobre o intervalo de IP interno do ambiente

Os ambientes do Cloud Composer 3 exigem vários endereços IP para componentes executados no projeto de locatário, como os do seu ambiente de execução e o proxy do Cloud SQL. Esses endereços IP são retirados do intervalo de IPs internos do ambiente;

  • O intervalo de IP interno padrão é 100.64.128.0/20.

  • É possível especificar um intervalo de IP interno diferente ao criar um de nuvem. Esse intervalo precisa usar uma máscara /20.

  • Não é possível alterar o intervalo de IPs internos de um ambiente atual.

O intervalo de IP interno interage com sua rede VPC das seguintes maneiras:

  • O intervalo de IP interno não pode entrar em conflito com a sub-rede VPC que o O ambiente do Cloud Composer está conectado. Não é possível para ativar uma conexão com uma sub-rede VPC que se sobreponha à do intervalo de IP interno.

  • Se o intervalo de IPs internos de um ambiente se sobrepuser à sua VPC intervalos de rede, os endpoints da rede VPC com os 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, todas as solicitações endpoint 100.64.128.1 na rede VPC falha porque o não saia do projeto de locatário.

  • O intervalo de IP interno não está reservado. É possível usar o mesmo IP interno para diversos ambientes sem precisar de configuração adicional, já que o as redes VPC internas usadas por ambientes diferentes são separadas.

  • Você pode usar os endereços IP do intervalo interno para outras finalidades, Os DAGs e tarefas no seu ambiente não fazem solicitações a eles.

Conectar-se a uma rede VPC

Console

  1. No console do Google Cloud, acesse a página Ambientes.

    Acessar "Ambientes"

  2. Na lista de ambientes, clique no nome do ambiente. A página Detalhes do ambiente é aberta.

  3. Acesse a guia Configuração do ambiente.

  4. Na seção Configuração de rede, localize a Anexo de rede e clique em Editar.

  5. Na caixa de diálogo Anexo de rede:

    • Para criar um novo anexo de rede, acesse a seção Anexo de rede selecione Criar um novo anexo de rede. No campo Rede e Sub-rede, selecione uma rede VPC e uma sub-rede.

    • Para usar um anexo de rede já existente, faça o seguinte em Anexo de rede selecione um anexo.

  6. Clique em Salvar.

gcloud

Os argumentos da Google Cloud CLI a seguir especificam a conexão de rede VPC parâmetros:

  • --network: ID da rede VPC.
  • --subnetwork: ID da sub-rede VPC.
  • --network-attachment: use um anexo de rede existente.

Novo anexo de rede

Conectar seu ambiente a uma rede VPC usando uma nova rede anexo, execute o seguinte comando da Google Cloud CLI:

gcloud beta composer environments update ENVIRONMENT_NAME \
  --location LOCATION \
  --network NETWORK_ID \
  --subnetwork SUBNETWORK_ID

Substitua:

  • ENVIRONMENT_NAME: o nome do ambiente.
  • LOCATION: a região em que o ambiente está localizado.
  • NETWORK_ID: ID da rede VPC
  • SUBNETWORK_ID: ID da sub-rede 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

Anexo de rede existente

Conectar seu ambiente a uma rede VPC usando uma nova rede anexo, execute o seguinte comando da Google Cloud CLI:

gcloud beta composer environments update ENVIRONMENT_NAME \
  --location LOCATION \
  --network-attachment NETWORK_ATTACHMENT_ID

Substitua:

  • ENVIRONMENT_NAME: o nome do ambiente.
  • LOCATION: a região em que o ambiente está localizado.
  • NETWORK_ATTACHMENT_ID: o anexo de rede no projects/{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

  1. Crie uma solicitação de API environments.patch.

  2. Nesta solicitação:

    • Para criar um novo anexo de rede:

      1. No parâmetro updateMask, especifique config.node_config.network,config.node_config.subnetwork máscara

      2. No corpo da solicitação, nos campos network e subnetwork campos, especifique os IDs da rede VPC e da sub-rede.

    • Para usar um anexo de rede existente:

      1. No parâmetro updateMask, especifique config.node_config.composer_network_attachment máscara

      2. No corpo da solicitação, forneça um valor para a rede atual. na projects/{project}/regions/{region}/networkAttachments/{networkAttachment} .

Exemplo (novo anexo de 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 campos a seguir no bloco node_config especificam a rede VPC parâmetros de conexão:

  • network: ID da rede VPC.
  • subnetwork: ID da sub-rede VPC.
  • composer_network_attachment: use um anexo 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:

  • ENVIRONMENT_NAME: o nome do ambiente;
  • LOCATION: a região em que o ambiente está localizado.
  • NETWORK_ID: ID da rede VPC
  • SUBNETWORK_ID: ID da sub-rede VPC

Exemplo (novo anexo de 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
  }
}

Anexo de rede existente

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

  config {

    node_config {
      composer_network_attachment = NETWORK_ATTACHMENT_ID
    }

  }
}

Substitua:

  • ENVIRONMENT_NAME: o nome do ambiente;
  • LOCATION: a região em que o ambiente está localizado.
  • NETWORK_ATTACHMENT_ID: o ID do anexo de rede.

Exemplo (anexo de rede existente):

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {

    node_config {
      composer_network_attachment = projects/example-project/regions/us-central1/networkAttachments/example-network-attachment
    }

    ... other configuration parameters
  }
}

Desativar conexão com uma rede VPC

Console

  1. No console do Google Cloud, acesse a página Ambientes.

    Acessar "Ambientes"

  2. Na lista de ambientes, clique no nome do ambiente. A página Detalhes do ambiente é aberta.

  3. Acesse a guia Configuração do ambiente.

  4. Na seção Configuração de rede, localize a Anexo de rede e clique em Editar.

  5. Na caixa de diálogo Anexo de rede, selecione Nenhum e clique em Salvar.

gcloud

Os argumentos --disable-vpc-connectivity desativam a rede VPC do seu ambiente:

gcloud beta composer environments update ENVIRONMENT_NAME \
  --location LOCATION \
  --disable-vpc-connectivity

Substitua:

  • ENVIRONMENT_NAME: o nome do ambiente.
  • LOCATION: a região em que o ambiente está localizado.

Exemplo:

gcloud beta composer environments update example-environment \
  --location us-central1 \
  --disable-vpc-connectivity

API

  1. Crie uma solicitação de API environments.patch.

  2. Nesta solicitação:

    1. No parâmetro updateMask, especifique config.node_config.network,config.node_config.subnetwork máscara

    2. No corpo da solicitação, nos campos network e subnetwork, 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 usar o Terraform para desanexar uma rede VPC. Em vez disso, você pode anexar outra rede VPC no lugar ou remover a rede usando outras ferramentas, como a Google Cloud CLI.

A seguir