Configurar o Private Service Connect no Cloud Composer

Cloud Composer 1 | Cloud Composer 2

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 Cloud Composer

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 Cloud Composer.

Com o suporte do Private Service Connect no Cloud Composer, 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 Cloud Composer 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 do Cloud Composer.

  • É possível criar ambientes com o Private Service Connect usando gcloud, Terraform e a API REST.

  • Se a restrição de política da organização Desativar o Private Service Connect para consumidores negar os endpoints SERVICE_PRODUCER, não será possível criar ambientes com o Private Service Connect. Como solução alternativa, é possível desativar essa restrição, criar um ambiente e, em seguida, ativá-la novamente.

Ativar o Private Service Connect ao criar um ambiente

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 beta composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-2.0.13-airflow-2.2.3 \
    --enable-private-environment \
    --connection-subnetwork ENVIRONMENT_PSC_SUBNETWORK

Substitua:

  • ENVIRONMENT_NAME pelo nome do ambiente;
  • LOCATION pela região em que o ambiente está localizado;
  • ENVIRONMENT_PSC_SUBNETWORK pelo 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 Cloud Composer. Cada ambiente exige um endereço IP.

Exemplo:

gcloud beta composer environments create example-environment \
    --location us-central1 \
    --image-version composer-2.0.13-airflow-2.2.3 \
    --enable-private-environment \
    --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/v1beta1/{parent=projects/*/locations/*}/environments

{
  "name": "ENVIRONMENT_NAME",

  "config": {
    "softwareConfig": {
      "imageVersion": "composer-2.0.13-airflow-2.2.3"
    },
    "nodeConfig": {
      "network": "ENVIRONMENT_NETWORK",
      "subnetwork": "ENVIRONMENT_SUBNETWORK"
    },
    "privateEnvironmentConfig": {
      "enablePrivateEnvironment": true,
      "privateClusterConfig": {
        "enablePrivateEndpoint": false
      },
      "cloudComposerConnectionSubnetwork": "ENVIRONMENT_PSC_SUBNETWORK"
    }
  }
}

Substitua:

  • ENVIRONMENT_NAME pelo nome do ambiente;
  • ENVIRONMENT_NETWORK pelo URI da rede do ambiente.
  • ENVIRONMENT_SUBNETWORK pelo URI da sub-rede do ambiente;
  • ENVIRONMENT_PSC_SUBNETWORK pelo 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 Cloud Composer. Cada ambiente requer um endereço IP.

Exemplo:

// POST https://composer.googleapis.com/v1beta1/{parent=projects/*/locations/*}/environments

{
  "name": "example-environment",
  "config": {

    "softwareConfig": {
      "imageVersion": "composer-2.0.13-airflow-2.2.3"
    },
    "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"
    }
  }
}

Terraform

Ao criar 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.0.13-airflow-2.2.3"
    }

    node_config {
      network = "ENVIRONMENT_NETWORK"
      subnetwork = "ENVIRONMENT_SUBNETWORK"

    }

    private_environment_config {

      // Other private IP environment parameters
      cloud_composer_connection_subnetwork = "ENVIRONMENT_PSC_SUBNETWORK"
    }
  }
}

Substitua:

  • ENVIRONMENT_NAME pelo nome do ambiente;
  • ENVIRONMENT_NETWORK pelo URI da rede do ambiente.
  • ENVIRONMENT_SUBNETWORK pelo URI da sub-rede do ambiente;
  • ENVIRONMENT_PSC_SUBNETWORK pelo 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 Cloud Composer. Cada ambiente requer um endereço IP.

Exemplo:

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

  config {

    software_config {
      image_version = "composer-2.0.13-airflow-2.2.3"
    }

    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
      cloud_composer_connection_subnetwork = "projects/example-project/regions/us-central1/subnetworks/default"
    }

  }
}

A seguir