Configura Private Service Connect en Cloud Composer

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

En esta página, se explica cómo crear un entorno de IP privada que use Private Service Connect en lugar de intercambios de tráfico de VPC.

Para obtener información general sobre la creación de entornos de IP privada, consulta Configura un entorno de IP privada.

Acerca de Private Service Connect en Cloud Composer

Los componentes del entorno se distribuyen el usuario y el proyecto del cliente. En IP privada, los componentes ubicados en estos dos proyectos se conectan mediante intercambios de tráfico de VPC. Los intercambios de tráfico de VPC tienen algunas limitaciones, incluido el límite de la cantidad máxima de intercambios de tráfico en una VPC. Estos límites pueden ser más evidentes si usas redes a gran escala con entornos de Cloud Composer.

Con la compatibilidad con Private Service Connect en Cloud Composer, tus entornos de IP privadas se comunican de forma interna sin usar el aprovisionamiento de VPC. Estos entornos usan el IP privada con arquitectura PSC.

Antes de comenzar

  • La compatibilidad con Private Service Connect está disponible solo en Cloud Composer 2.

  • Solo puedes habilitar Private Service Connect cuando creas un entorno nuevo. No es posible cambiar un entorno existente para usar Private Service Connect.

  • Tu entorno debe ser un entorno de IP privada. Debido a que no se usan intercambios de tráfico entre VPC, no es necesario especificar los rangos CIDR para la instancia de Cloud SQL y la red red de Cloud Composer.

  • Si la restricción de la política de la organización Inhabilitar Private Service Connect para consumidores niega los extremos SERVICE_PRODUCER, no es posible crear entornos con Private Service Connect. Esta política no afecta a los entornos existentes de Cloud Composer con Private Service Connect. Estos entornos pueden funcionar cuando se habilita esta política.

Habilita Private Service Connect cuando crees un entorno

Console

Para crear un entorno con Private Service Connect, seleccionar el tipo de conectividad Private Service Connect cuando crees una Entorno de IP privada. Luego, especifica la subred para la Private Service Connect.

Cuando creas un entorno de IP privada, sigue estos pasos:

  1. En la sección Configuración de red, expande el elemento Mostrar configuración de red.

  2. En la sección Tipo de red, selecciona la opción Entorno de IP privado para crear un entorno de IP privado.

  3. En la sección Conectividad de Composer, selecciona Private Service Connect.

  4. En la lista desplegable Subred de conexión de Composer, selecciona la subred para los extremos de Private Service Connect.

    Puedes usar la subred de tu entorno.

    Como alternativa, puedes especificar una subred diferente. De esta manera, obtienes más control sobre el rango de CIDR desde el que se selecciona la dirección IP del extremo de PSC. Varios entornos de Cloud Composer pueden compartir este rango. Cada entorno requiere una dirección IP.

  5. Especifica otros parámetros para tu entorno de IP privada.

gcloud

Para crear un entorno con Private Service Connect, usa el argumento --connection-subnetwork cuando crees un entorno de IP privada. Luego, especifica la subred para la conexión de Private Service Connect.

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-2.9.7-airflow-2.9.3 \
    --enable-private-environment \
    --web-server-allow-all \
    --connection-subnetwork ENVIRONMENT_PSC_SUBNETWORK

Reemplaza lo siguiente:

  • ENVIRONMENT_NAME por el nombre del entorno.
  • LOCATION por la región en la que se encuentra el entorno.
  • ENVIRONMENT_PSC_SUBNETWORK con el URI de la subred para los extremos de Private Service Connect.

    Puedes usar la subred de tu entorno.

    Como alternativa, puedes especificar una subred diferente. Hacerlo te brinda más control sobre el rango CIDR desde el que se obtiene la dirección IP se selecciona el extremo de PSC. Varias personas pueden compartir este rango Entornos de Cloud Composer. Cada entorno requiere una dirección IP.

Ejemplo:

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-2.9.7-airflow-2.9.3 \
    --enable-private-environment \
    --web-server-allow-all \
    --connection-subnetwork "projects/example-project/regions/us-central1/subnetworks/default"

API

Realiza una solicitud a la API de environments.create. En el recurso Entorno, especifica los parámetros de configuración para la conexión de Private Service Connect.

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

{
  "name": "ENVIRONMENT_NAME",

  "config": {
    "softwareConfig": {
      "imageVersion": "composer-2.9.7-airflow-2.9.3"
    },
    "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"
        }
      ]
    }
  }
}

Reemplaza lo siguiente:

  • ENVIRONMENT_NAME por el nombre del entorno.
  • ENVIRONMENT_NETWORK por el URI de la red de tu entorno.
  • ENVIRONMENT_SUBNETWORK por el URI de la subred de tu entorno.
  • ENVIRONMENT_PSC_SUBNETWORK por el URI de la subred para PSC en los extremos.

    Puedes usar la subred de tu entorno.

    Como alternativa, puedes especificar una subred diferente. Hacerlo te brinda más control sobre el rango CIDR desde el que se obtiene la dirección IP se selecciona el extremo de PSC. Varios entornos de Cloud Composer pueden compartir este rango. Cada entorno requiere una dirección IP.

Ejemplo:

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

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

    "softwareConfig": {
      "imageVersion": "composer-2.9.7-airflow-2.9.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"
    }
    "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

Cuando creas un entorno, el campo cloud_composer_connection_subnetwork en el bloque private_environment_config habilita Private Service Connect.

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

  config {

    software_config {
      image_version = "composer-2.9.7-airflow-2.9.3"
    }

    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"
      }
    }
  }
}

Reemplaza lo siguiente:

  • ENVIRONMENT_NAME por el nombre del entorno.
  • ENVIRONMENT_NETWORK por el URI de la red de tu entorno.
  • ENVIRONMENT_SUBNETWORK por el URI de la subred de tu entorno.
  • ENVIRONMENT_PSC_SUBNETWORK por el URI de la subred para PSC en los extremos.

    Puedes usar la subred de tu entorno.

    Como alternativa, puedes especificar una subred diferente. Hacerlo te brinda más control sobre el rango CIDR desde el que se obtiene la dirección IP se selecciona el extremo de PSC. Varios entornos de Cloud Composer pueden compartir este rango. Cada entorno requiere una IP web.

Ejemplo:

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.9.7-airflow-2.9.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
      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"
      }
    }
 }
}

¿Qué sigue?