更改环境网络类型(专用 IP 或公共 IP)

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

本页面介绍了 Cloud Composer 3 中的专用 IP 和公共 IP 环境网络类型之间的区别,并提供了有关如何切换环境网络类型的说明。

如果您只想在安装 PyPI 软件包时停用或启用互联网访问权限,请参阅在安装 PyPI 软件包时配置互联网访问权限

如果您想从环境中启用对 VPC 网络的访问权限,请参阅将环境连接到 VPC 网络

环境网络类型简介

Cloud Composer 3 使用两种环境网络类型:

  • 公共 IP 网络

    • 环境的 Airflow 组件可以访问互联网。这是默认的网络类型。

    • 公共 IP 环境中的 Airflow 组件会通过自动分配的公共 IP 地址和端口建立出站连接。如果您希望公共 IP 环境使用预先确定的 IP 地址和端口,可以通过将 VPC 网络连接到您的环境并将其切换为专用 IP 来实现此目的。在这种情况下,Cloud Composer 会通过此网络路由除 Google 服务流量之外的所有流量。

  • 专用 IP 网络

    • 环境的 Airflow 组件无法访问互联网。

    • 专用 IP 环境通过 private.googleapis.com 范围配置专用 Google 访问通道,从而能够访问此范围支持的 Google API、服务和网域。

      如需详细了解可通过 private.googleapis.com 访问的服务和网域列表,请参阅 Virtual Private Cloud 文档中的网络配置

    • 使用 VPC Service Controls 的专用 IP 环境通过 restricted.googleapis.com 范围配置专用 Google 访问通道,从而能够访问此范围支持的 Google API、服务和网域。

      如需详细了解可通过 restricted.googleapis.com 访问的服务和网域列表,请参阅 Virtual Private Cloud 文档中的网络配置

除了两种网络类型之外,您还可以针对任何类型的环境启用或停用对自定义 VPC 网络的访问权限。专用 IP 环境可以通过 VPC 网络访问互联网,具体取决于您如何配置 VPC 网络。

Cloud Composer 2 与 Cloud Composer 3 的网络比较

在 Cloud Composer 3 中,专用 IP 环境无需配置。

以下 Cloud Composer 2 网络功能在 Cloud Composer 3 中不再相关:

  • 配置专用 IP 网络。您无需指定 IP 范围、网络或配置连接和防火墙规则。

  • 配置 Private Service Connect。 在 Cloud Composer 3 中,您无需为 Private Service Connect 设置范围。

  • 使用以不公开方式使用的公共 IP 范围。此功能提供了一个用于扩展可用 IP 地址范围的选项,但在 Cloud Composer 3 中不需要此选项。

  • 使用 IP 伪装代理。在 Cloud Composer 3 中,您无需配置集群连接。

  • 配置已获授权的网络。在 Cloud Composer 3 中,无法访问环境的集群。

更改环境网络类型

控制台

  1. 在 Google Cloud 控制台中,前往环境页面。

    转到“环境”

  2. 在环境列表中,点击您的环境名称。环境详情页面会打开。

  3. 转到环境配置标签页。

  4. 网络配置部分中,找到网络类型项,然后点击修改

  5. 网络类型对话框中,选择:

    • 公共 IP 环境(默认),用于公共 IP 网络。
    • 专用 IP 环境,用于专用 IP 网络。
  6. 点击保存

gcloud

以下 Google Cloud CLI 实参可更改环境的网络类型:

  • --enable-private-environment:对专用 IP 网络所做的更改。
  • --disable-private-environment:更改为公共 IP 网络(默认)。

改为专用 IP 网络:

gcloud beta composer environments update ENVIRONMENT_NAME \
  --location LOCATION \
  --enable-private-environment

改为公共 IP 网络:

gcloud beta composer environments update ENVIRONMENT_NAME \
  --location LOCATION \
  --disable-private-environment

替换以下内容:

  • ENVIRONMENT_NAME:环境的名称。
  • LOCATION:环境所在的区域。

示例(专用 IP):

gcloud beta composer environments update example-environment \
  --location us-central1 \
  --enable-private-environment

示例(公共 IP):

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

API

  1. 创建 environments.patch API 请求。

  2. 在此请求中:

    1. 在参数 updateMask 中,指定 config.private_environment_config.enable_private_environment 掩码。

    2. 在请求正文的 enablePrivateEnvironment 字段中:

      • 指定 true 以切换到专用 IP 网络。
      • 指定 false 可更改为公共 IP 网络(默认)。

示例(专用 IP):

// PATCH https://composer.googleapis.com/v1beta1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.private_environment_config.enable_private_environment

"config": {
  "privateEnvironmentConfig": {
    "enablePrivateEnvironment": true
  }
}

Terraform

config 块中的 enable_private_environment 字段用于指定环境的网络类型:

  • true:专用 IP 网络。
  • false 或省略:公共 IP 网络(默认)。
resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    enable_private_environment = PRIVATE_IP_STATUS

  }
}

替换以下内容:

  • ENVIRONMENT_NAME:您的环境的名称。
  • LOCATION:环境所在的区域。
  • PRIVATE_IP_STATUS:专用 IP 为 true,公共 IP 为 false

示例(专用 IP):

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

  config {

    enable_private_environment = true

    ... other configuration parameters
  }
}

配置代理服务器变量

并在此网络中配置流量路由规则。

您可以在环境中设置 http_proxyhttps_proxy 环境变量。在环境集群的容器中运行的 Web 客户端使用这些标准 Linux 变量,通过指定的代理路由流量。

默认情况下,NO_PROXY 变量设置为 Google 网域和 localhost 的列表,以便将它们排除在代理之外:.google.com,.googleapis.com,metadata.google.internal,localhost。如果代理未配置为处理 Google 服务的流量,则此配置可用于创建具有已设置的 http_proxyhttps_proxy 环境变量的环境。

后续步骤