Managed Airflow(第 3 代) | Managed Airflow(第 2 代) | Managed Airflow(旧版第 1 代)
本页面介绍了 Managed Airflow(第 3 代)中专用 IP 和公共 IP 环境网络类型之间的区别,并提供了有关切换环境网络类型的说明。
如果您只想在安装 PyPI 软件包时停用或启用互联网访问权限,请参阅 在安装 PyPI 软件包时配置互联网访问权限。
如果您想从环境启用对 VPC 网络的访问权限, 请参阅 将环境连接到 VPC 网络。
环境网络类型简介
Managed Airflow(第 3 代)使用两种环境网络类型:
公共 IP 网络:
环境的 Airflow 组件可以访问互联网。这是默认网络类型。
在公共 IP 环境中,所有流向公共 IP 范围的出站流量都会通过默认互联网网关路由。 此限制包括以非公开方式使用的公共 IP (PUPI) 在 GKE 中使用,因为它们与公共 IP 范围重叠。 因此,原本要发送到 PUPI 地址的流量不会到达您的专用 GKE 地址,而是会路由到公共互联网。 如需启用与 PUPI 范围的连接,我们建议您 将环境切换到专用 IP 网络 并将其连接到 VPC 网络。
-
公共 IP 环境中的 Airflow 组件会从自动分配的公共 IP 地址和端口建立出站连接。 如果您希望公共 IP 环境使用预先确定的 IP 地址和端口,可以通过 将 VPC 网络连接到环境 并将其切换到专用 IP来实现此目的。 在这种情况下,Managed Airflow 会通过此网络路由除流向 Google 服务的流量之外的所有流量。
专用 IP 网络:
与公共 IP 网络相比,专用 IP 网络是一种更安全的选择。
环境的 Airflow 组件无法访问互联网。对于连接到 VPC 网络的环境 ,网络配置 会控制互联网访问权限。
专用 IP 环境通过
private.googleapis.com范围配置专用 Google 访问通道,从而能够访问此范围支持的 Google API、服务和网域。如需了解详情以及通过
private.googleapis.com提供的服务和网域列表,请参阅 Virtual Private Cloud 文档中的 网络配置。具有 VPC Service Controls 的专用 IP 环境通过 专用 Google 访问通道配置
restricted.googleapis.com范围,从而能够访问此范围 支持的 Google API、服务和网域。如需了解详情以及通过
restricted.googleapis.com提供的服务和网域列表,请参阅 Virtual Private Cloud 文档中的 网络配置。如果专用 IP 环境 连接到自定义 VPC 网络,则所有 流量都会路由到 VPC 网络,但通过专用 Google 访问通道提供给专用 IP 环境的 Google API、服务和网域的流量除外。这种方法 可让 Airflow 组件连接到 以非公开方式使用的公共 IP (PUPI) 在 GKE 中, 因为流量将通过 VPC 网络路由, 而不是发送到公共互联网。
Managed Airflow(第 2 代)网络与 Managed Airflow(第 3 代)网络比较
在 Managed Airflow(第 3 代)中,专用 IP 环境不需要任何配置。
以下 Managed Airflow(第 2 代)网络功能在 Managed Airflow(第 3 代)中不再相关:
配置专用 IP 网络。您无需指定 IP 范围、网络,也无需配置连接和防火墙规则。
配置 Private Service Connect。 您无需在 Managed Airflow(第 3 代)中为 Private Service Connect 设置范围。
使用以非公开方式使用的公共 IP 范围。此功能提供了一个用于扩展可用 IP 范围的选项,而 Managed Airflow(第 3 代)中不需要此选项。
使用 IP 伪装代理。您无需在 Managed Airflow(第 3 代)中配置集群连接。
配置已获授权的网络。无法在 Managed Airflow(第 3 代)中访问环境的集群。
Managed Airflow(第 3 代)不支持以下 DNS 配置:
- Managed Airflow(第 3 代)不支持用户定义的
.internalDNS 区域。如果您为.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.patchAPI 请求。在此请求中:
在
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 环境变量
。这些标准 Linux 变量由在环境集群的容器中运行的网络客户端使用,以通过指定的代理路由流量。
NO_PROXY 变量默认设置为 Google 网域列表、环境集群 Compute Engine 元数据服务器的 IP 地址和 localhost,以便将它们排除在代理之外:
.google.com,.googleapis.com,metadata.google.internal,169.254.169.254,localhost
如果未将代理配置为处理流向 Google 服务的流量,则此配置可用于创建具有设置的 http_proxy 和 https_proxy 环境变量的环境。