更改环境网络类型(专用 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、服务和网域。

      如需了解详情以及通过 resrticted.googleapis.com 提供的服务和网域列表,请参阅 Virtual Private Cloud 文档中的网络配置

除了两种网络类型之外,您还可以为任何类型的环境启用或停用对自定义 VPC 网络的访问权限。根据您配置 VPC 网络的方式,专用 IP 环境可以通过 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. Networking type 对话框中,选择:

    • 公共 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_STATUStrue(专用 IP),false(公共 IP)

示例(专用 IP):

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

  config {

    enable_private_environment = true

    ... other configuration parameters
  }
}

后续步骤