Cloud Composer 1 |Cloud Composer 2 |Cloud Composer 3
本页面介绍了如何为您的环境启用 IP 伪装代理。
Cloud Composer 中的 IP 伪装代理简介
Cloud Composer 支持为您的环境使用 IP 伪装代理。
IP 伪装是一种网络地址转换 (NAT) 形式,用于执行多对一 IP 地址转换,从而允许多个客户端使用一个 IP 地址访问目标。
Cloud Composer 在 GKE 上运行工作负载。为正常运行,它需要节点(虚拟机)以及 GKE Pod 和服务的 IP 范围。当 Airflow DAG 和任务与其他服务通信时,它们使用 Pod IP,并且这些 Pod IP 范围需要与任务进行交互的任何目标可路由。
使用 IP Masquerade 代理,您可以选择将 Pod IP 地址转换为节点 IP 地址,以便以 Airflow DAG 和任务为目标的目的地和服务仅从节点 IP 地址(而不是 Pod IP 地址)接收数据包。这对于只需要接收来自节点 IP 地址数据包的环境或者 Pod IP 地址范围在集群外部无法路由的环境非常有用。
此外,您还可以使用 IP 伪装代理在网络配置中保存网络范围。例如,您可以为环境集群中的 Pod 使用单独的网络范围,并将此流量伪装成来自节点 IP 地址范围。通过这种方式,您可以将不同范围内的 IP 地址用于环境集群中的 Pod,从而节省一个范围内的 IP 地址空间。
例如:
您为虚拟机使用
10.0.0.0/8
范围,并且防火墙规则仅允许此范围。如需保存网络范围,请对环境集群中的 Pod 使用其他范围(例如
192.168.0.0/16
)。为了能够从 Pod(Airflow 工作器)连接到任何服务,需要使用 IP 伪装。否则,服务会接收来自
192.168.0.0/16
的流量,并由于防火墙规则而被丢弃。启用并配置 IP 伪装代理后,服务会接收来自10.0.0.0/8
的接受
准备工作
您无法在 Google Cloud 控制台中启用 IP 伪装代理。
如需使用此功能,您必须使用 GKE 创建环境 1.22.7 或更高版本。
IP 伪装代理不适用于已创建的环境 即使 GKE 升级到 1.22.7 及更高版本。
为现有环境启用 IP 伪装代理
无法为现有集群启用 IP 伪装代理 环境
创建环境时启用 IP 伪装代理
您可以在创建环境时启用 IP 伪装代理。
如需详细了解如何创建 Cloud Composer 环境,请参阅创建环境。
控制台
您无法在 Google Cloud 控制台中启用 IP 伪装代理。
gcloud
创建环境时,--enable-ip-masq-agent
实参
用于启用 IP Masqerade 代理。
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-2.9.1-airflow-2.9.1 \
--enable-ip-masq-agent
您需要将其中的:
ENVIRONMENT_NAME
替换为环境的名称。LOCATION
替换为环境所在的区域。
示例:
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-2.9.1-airflow-2.9.1 \
--enable-ip-masq-agent
API
构建 environments.create
API 请求。
在 Environment
资源中指定配置。
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"config": {
"softwareConfig": {
"imageVersion": "composer-2.9.1-airflow-2.9.1"
},
"nodeConfig": {
"enableIpMasqAgent": true
}
}
}
替换:
- 将
PROJECT_ID
替换为项目 ID。 LOCATION
替换为环境所在的区域。- 将
ENVIRONMENT_NAME
替换为环境名称。
例如:
// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments
{
"name": "projects/example-project/locations/us-central1/environments/example-environment",
"config": {
"softwareConfig": {
"imageVersion": "composer-2.9.1-airflow-2.9.1"
},
"nodeConfig": {
"enableIpMasqAgent": true
}
}
}
Terraform
创建环境后,enable_ip_masq_agent
字段会启用 IP Masqerade 代理。node_config
resource "google_composer_environment" "example_environment" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
software_config {
image_version = "composer-2.9.1-airflow-2.9.1"
}
node_config {
enable_ip_masq_agent = true
}
}
您需要将其中的:
ENVIRONMENT_NAME
替换为环境的名称。LOCATION
替换为环境所在的区域。
示例:
resource "google_composer_environment" "example_environment" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
software_config {
image_version = "composer-2.9.1-airflow-2.9.1"
}
node_config {
enable_ip_masq_agent = true
}
}
}
配置 IP 伪装代理
如需详细了解如何使用和配置 IP 伪装代理,请参阅 Cloud Composer 2,请参阅 使用出站 NAT 政策在 Autopilot 集群中配置 IP 伪装。