在 Cloud Composer 中配置 Private Service Connect

Cloud Composer 1 | Cloud Composer 2

本页面介绍了如何创建使用 Private Service Connect(而非 VPC 对等互连)的专用 IP 环境。

如需了解有关创建专用 IP 环境的一般信息,请参阅配置专用 IP 环境

关于 Cloud Composer 中的 Private Service Connect

您的环境组件分布在租户和客户项目之间。在专用 IP 环境中,位于这两个项目中的组件使用 VPC 对等互连进行连接。VPC 对等互连有一些限制,包括对 VPC 中对等互连的最大数量的限制。在 Cloud Composer 环境中使用大规模网络时,这些限制会更加明显。

借助 Cloud Composer 中的 Private Service Connect 支持,您的专用 IP 环境可以在不使用 VPC 对等互连的情况下进行内部通信。此类环境使用具有 PSC 架构的专用 IP

准备工作

  • Private Service Connect 支持仅适用于 Cloud Composer 2。

  • 您只能在创建新环境时启用 Private Service Connect。无法将现有环境切换为使用 Private Service Connect。

  • 您的环境必须是专用 IP 环境。 由于不使用 VPC 对等互连,因此您无需为 Cloud SQL 实例和 Cloud Composer 网络指定 CIDR 范围。

  • 您可以通过 gcloud、Terraform 和 REST API 使用 Private Service Connect 创建环境。

  • 如果为使用方停用 Private Service Connect 组织政策限制条件拒绝 SERVICE_PRODUCER 端点,则无法使用 Private Service Connect 创建环境。如需解决此问题,您可以停用此限制条件,创建环境,然后再次启用该限制条件。

创建环境时启用 Private Service Connect

gcloud

如需创建具有 Private Service Connect 的环境,请在创建专用 IP 环境时使用 --connection-subnetwork 参数。然后为 Private Service Connect 连接指定子网。

gcloud beta composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-2.0.12-airflow-2.2.3 \
    --enable-private-environment \
    --connection-subnetwork ENVIRONMENT_PSC_SUBNETWORK

替换:

  • ENVIRONMENT_NAME 替换为环境的名称。
  • LOCATION 替换为环境所在的区域。
  • ENVIRONMENT_PSC_SUBNETWORK 替换为 PSC 端点的子网 URI。

    您可以使用环境的子网

    作为替代方案,您可以指定其他子网。这样,您可以更好地控制从中选择 PSC 端点的 IP 地址的 CIDR 范围。此范围可以由多个 Cloud Composer 环境共享。每个环境都需要一个 IP 地址。

示例:

gcloud beta composer environments create example-environment \
    --location us-central1 \
    --image-version composer-2.0.12-airflow-2.2.3 \
    --enable-private-environment \
    --connection-subnetwork "projects/example-project/regions/us-central1/subnetworks/default"

API

构建 environments.create API 请求。在环境资源中,为 Private Service Connect 连接指定配置参数。

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

{
  "name": "ENVIRONMENT_NAME",

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

替换:

  • ENVIRONMENT_NAME 替换为环境的名称。
  • ENVIRONMENT_NETWORK 替换为环境网络的 URI。
  • ENVIRONMENT_SUBNETWORK 替换为您的环境的子网的 URI。
  • ENVIRONMENT_PSC_SUBNETWORK 替换为 PSC 端点的子网 URI。

    您可以使用环境的子网

    作为替代方案,您可以指定其他子网。这样,您可以更好地控制从中选择 PSC 端点的 IP 地址的 CIDR 范围。此范围可以由多个 Cloud Composer 环境共享。每个环境都需要一个 IP 地址。

示例:

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

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

    "softwareConfig": {
      "imageVersion": "composer-2.0.12-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

创建环境时,private_environment_config 块中的 cloud_composer_connection_subnetwork 字段会启用 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.12-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"
    }
  }
}

替换:

  • ENVIRONMENT_NAME 替换为环境的名称。
  • ENVIRONMENT_NETWORK 替换为环境网络的 URI。
  • ENVIRONMENT_SUBNETWORK 替换为您的环境的子网的 URI。
  • ENVIRONMENT_PSC_SUBNETWORK 替换为 PSC 端点的子网 URI。

    您可以使用环境的子网

    作为替代方案,您可以指定其他子网。这样,您可以更好地控制从中选择 PSC 端点的 IP 地址的 CIDR 范围。此范围可以由多个 Cloud Composer 环境共享。每个环境都需要一个 IP 地址。

示例:

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

  config {

    software_config {
      image_version = "composer-2.0.12-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"
    }

  }
}

后续步骤