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 网络:
与公共 IP 网络相比,专用 IP 网络是一种更安全的选择。
环境的 Airflow 组件无法访问互联网。对于附加到 VPC 网络的环境,网络配置会控制互联网访问权限。
专用 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 文档中的网络配置。如果专用 IP 环境附加到自定义 VPC 网络,则所有内部流量都会路由到该 VPC 网络,但通过专用 Google 访问通道可供专用 IP 环境使用的 Google API、服务和网域的流量除外。
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 中,无法访问环境的集群。
Cloud Composer 3 不支持以下 DNS 配置:
- Cloud Composer 3 不支持用户定义的
.internal
DNS 区域。如果您为.internal
创建 DNS 区域,则无法访问该区域。
更改环境网络类型
控制台
在 Google Cloud 控制台中,前往环境页面。
在环境列表中,点击您的环境名称。环境详情页面会打开。
转到环境配置标签页。
在网络配置部分中,找到网络类型项,然后点击修改。
在网络类型对话框中,选择:
- 公共 IP 环境(默认),用于公共 IP 网络。
- 专用 IP 环境,用于专用 IP 网络。
点击保存。
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
创建
environments.patch
API 请求。在此请求中:
在参数
updateMask
中,指定config.private_environment_config.enable_private_environment
掩码。在请求正文的
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_proxy
和 https_proxy
环境变量。在环境集群的容器中运行的 Web 客户端使用这些标准 Linux 变量,通过指定的代理路由流量。
默认情况下,NO_PROXY
变量设置为 Google 网域和 localhost
的列表,以便将它们排除在代理之外:.google.com,.googleapis.com,metadata.google.internal,localhost
。如果代理未配置为处理 Google 服务的流量,则此配置可用于创建具有已设置的 http_proxy
和 https_proxy
环境变量的环境。