配置专用 IP 网络

Cloud Composer 1 | Cloud Composer 2

本页面介绍如何为专用 IP 环境配置 Google Cloud 项目网络。

对于专用 IP 环境,Cloud Composer 仅会为您的环境中的代管式 Google Kubernetes Engine 和 Cloud SQL 虚拟机分配专用 IP (RFC 1918) 地址。

您也可以选择使用以非公开方式使用的公共 IP 地址IP 伪装代理来保存 IP 地址空间并使用非 RFC 1918 地址。

如需了解如何连接到环境中的资源,请参阅专用 IP

准备工作

确保您拥有创建环境所需的相应用户和服务账号权限

检查网络要求

验证项目的 VPC 网络是否满足以下要求:

  • 确保不存在专用 IP 块冲突。如果您的 VPC 网络及其已建立的 VPC 对等体与 Google 管理的租户项目中的 VPC 网络之间存在重叠的 IP 地址块,Cloud Composer 将无法创建您的环境。如需了解每个区域使用的默认值,请参阅默认 IP 范围表

  • 确保 Cloud Composer GKE pod 和服务具有足够的次要 IP 范围。GKE 会在次要 IP 范围内搜索 IP 别名。如果 GKE 找不到某一范围,则 Cloud Composer 无法创建您的环境。

  • 确保子网中的次要范围数不超过 30 个。请考虑以下事项:

    • 专用 IP 环境的 GKE 集群会在子网中创建两个次要范围。您可以在同一区域中为同一 VPC 网络创建多个子网。
    • 最多支持 30 个次要范围。每个专用 IP 环境都需要两个次要范围(用于 Cloud Composer GKE Pod 和服务)。
  • 确保您的项目的网络可以满足单个 VPC 网络的连接数上限限制。您可以创建的专用 IP 环境的数量上限取决于您的 VPC 网络中已有的 VPC 对等互连连接的数量。

  • 每个专用 IP 环境在每个环境中最多使用两个 VPC 对等互连。Cloud Composer 会为租户项目网络创建一个 VPC 对等互连。第二个对等互连由您环境的 GKE 集群创建,GKE 集群可以重复使用此连接

选择网络、子网和网络范围

为您的专用 IP 环境选择网络范围(或使用默认范围)。稍后您在创建专用 IP 环境时会使用这些网络范围。

如需创建专用 IP 环境,您需要提供以下信息:

  • 您的 VPC 网络 ID
  • 您的 VPC 子网 ID
  • VPC 子网中的两个次要 IP 范围:
    • pod 的次要 IP 范围
    • Service 的次要 IP 范围
  • 环境组件的 IP 范围:

    • GKE 控制平面 IP 范围。GKE 控制平面的 IP 地址范围。
      • Web 服务器 IP 范围。
    • 网络服务器 IP 范围。Airflow Web 服务器实例的 IP 范围。
    • Cloud SQL IP 范围。Cloud SQL 实例的 IP 范围。

如需了解每个区域使用的默认值,请参阅默认 IP 范围表

默认 IP 范围

区域 GKE 控制平面 IP 范围 网络服务器 IP 范围 Cloud SQL IP 地址范围
asia-east1 172.16.42.0/23 172.31.255.0/24 10.0.0.0/12
asia-east2 172.16.0.0/23 172.31.255.0/24 10.0.0.0/12
asia-northeast1 172.16.2.0/23 172.31.254.0/24 10.0.0.0/12
asia-northeast2 172.16.32.0/23 172.31.239.0/24 10.0.0.0/12
asia-northeast3 172.16.30.0/23 172.31.240.0/24 10.0.0.0/12
asia-south1 172.16.4.0/23 172.31.253.0/24 10.0.0.0/12
asia-south2 172.16.50.0/23 172.31.230.0/24 10.0.0.0/12
asia-southeast1 172.16.40.0/23 172.31.235.0/24 10.0.0.0/12
asia-southeast2 172.16.44.0/23 172.31.233.0/24 10.0.0.0/12
australia-southeast1 172.16.6.0/23 172.31.252.0/24 10.0.0.0/12
australia-southeast2 172.16.56.0/23 172.31.227.0/24 10.0.0.0/12
europe-central2 172.16.36.0/23 172.31.237.0/24 10.0.0.0/12
europe-north1 172.16.48.0/23 172.31.231.0/24 10.0.0.0/12
europe-southwest1 172.16.58.0/23 172.31.226.0/24 10.0.0.0/12
europe-west1 172.16.8.0/23 172.31.251.0/24 10.0.0.0/12
europe-west10 172.16.62.0/23 172.31.224.0/24 10.0.0.0/12
europe-west12 172.16.62.0/23 172.31.224.0/24 10.0.0.0/12
europe-west2 172.16.10.0/23 172.31.250.0/24 10.0.0.0/12
europe-west3 172.16.12.0/23 172.31.249.0/24 10.0.0.0/12
europe-west4 172.16.42.0/23 172.31.234.0/24 10.0.0.0/12
europe-west6 172.16.14.0/23 172.31.248.0/24 10.0.0.0/12
europe-west8 172.16.60.0/23 172.31.225.0/24 10.0.0.0/12
europe-west9 172.16.46.0/23 172.31.232.0/24 10.0.0.0/12
me-central1 172.16.58.0/23 172.31.226.0/24 10.0.0.0/12
me-west1 172.16.54.0/23 172.31.228.0/24 10.0.0.0/12
northamerica-northeast1 172.16.16.0/23 172.31.247.0/24 10.0.0.0/12
northamerica-northeast2 172.16.46.0/23 172.31.232.0/24 10.0.0.0/12
southamerica-east1 172.16.18.0/23 172.31.246.0/24 10.0.0.0/12
southamerica-west1 172.16.58.0/23 172.31.226.0/24 10.0.0.0/12
us-central1 172.16.20.0/23 172.31.245.0/24 10.0.0.0/12
us-east1 172.16.22.0/23 172.31.244.0/24 10.0.0.0/12
us-east4 172.16.24.0/23 172.31.243.0/24 10.0.0.0/12
us-east5 172.16.52.0/23 172.31.229.0/24 10.0.0.0/12
us-south1 172.16.56.0/23 172.31.227.0/24 10.0.0.0/12
us-west1 172.16.38.0/23 172.31.236.0/24 10.0.0.0/12
us-west2 172.16.34.0/23 172.31.238.0/24 10.0.0.0/12
us-west3 172.16.26.0/23 172.31.242.0/24 10.0.0.0/12
us-west4 172.16.28.0/23 172.31.241.0/24 10.0.0.0/12

(可选)配置与 Google API 和服务的连接

您可以选择通过属于 private.googleapis.com 网域的多个 IP 地址将所有流量路由到 Google API 和服务。在此配置中,您的环境通过仅可从 Google Cloud 内部路由的 IP 地址访问 Google API 和服务。

如果您的专用 IP 环境也使用 VPC Service Controls,请改为参阅适用于具有 VPC Service Controls 的环境的说明

Cloud Composer 环境使用以下网域:

  • *.googleapis.com用于访问其他 Google 服务。

  • *.pkg.dev 用于获取环境映像,例如在创建或更新环境时。

  • 无论 Cloud Composer 版本如何,*.gcr.io GKE 都需要连接到 Container Registry 网域。

配置与 private.googleapis.com 端点的连接:

网域 DNS 名称 CNAME 记录 A 记录
*.googleapis.com googleapis.com. DNS 名称:*.googleapis.com.
资源记录类型:CNAME
规范名称:googleapis.com.
资源记录类型:A
IPv4 地址:199.36.153.8199.36.153.9199.36.153.10199.36.153.11
*.pkg.dev pkg.dev. DNS 名称:*.pkg.dev.
资源记录类型:CNAME
规范名称:pkg.dev.
资源记录类型:A
IPv4 地址:199.36.153.8199.36.153.9199.36.153.10199.36.153.11
*.gcr.io gcr.io. DNS 名称:*.gcr.io.
资源记录类型:CNAME
规范名称:gcr.io.
资源记录类型:A
IPv4 地址:199.36.153.8199.36.153.9199.36.153.10199.36.153.11

如需创建 DNS 规则,请执行以下操作:

  1. 创建新的 DNS 区域,并使用 DNS 名称作为此区域的 DNS 名称。

    示例:pkg.dev.

  2. CNAME 记录添加一个记录集

    示例:

    • DNS 名称:*.pkg.dev.
    • 资源记录类型:CNAME
    • 规范名称:pkg.dev.
  3. A 记录添加记录集

    示例:

    • 资源记录类型:A
    • IPv4 地址:199.36.153.8199.36.153.9199.36.153.10199.36.153.11

如需了解详情,请参阅设置与 Google API 和服务的专用连接

(可选)配置防火墙规则

仅当您的项目具有非默认防火墙规则(例如覆盖隐式防火墙规则的规则)或修改默认网络中预先填充的规则时,才执行此步骤。

例如,如果您的防火墙规则拒绝所有出站流量,则 Cloud Composer 可能无法创建环境。为避免出现问题,请定义遵循列表且优先级高于全局 deny 规则的精选 allow 规则。

将您的 VPC 网络配置为允许来自您的环境的流量:

  • 请参阅使用防火墙规则,了解如何检查、添加和更新 VPC 网络的规则。
  • 使用连接工具验证 IP 范围之间的连接情况。
  • 您可以使用网络标记进一步限制访问权限。您可以在创建环境时设置这些标记。
说明 方向 操作 来源或目标 协议 端口
DNS 出站 允许 任何目标 (0.0.0.0/0) 或 DNS 服务器 IP 地址 TCP、UDP 53
Google API 和服务 出站 允许 您为 Google API 和服务选择的网域的 IP 地址范围。如果您使用默认网域,请参阅默认网域的 IP 地址 TCP 443
环境的集群节点 出站 允许 环境的子网主要 IP 地址范围 TCP、UDP 全部
环境的集群 Pod 出站 允许 环境子网中 Pod 的次要 IP 地址范围 TCP、UDP 全部
环境的集群控制平面 出站 允许 GKE 控制平面 IP 地址范围 TCP、UDP 全部
Web 服务器 出站 允许 Web 服务器网络 IP 范围 TCP 3306、3307

如需获取 IP 范围,请执行以下操作:

  • 您可以在环境集群的集群页面上找到 Pod、Service 和控制平面地址范围:

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

      转到“环境”

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

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

    4. 点击查看集群详情链接。

  • 您可以在环境配置标签页中查看环境的 Web 服务器 IP 范围。

  • 您可以在环境配置标签页中查看环境的网络 ID。如需获取子网的 IP 地址范围,请转到 VPC 网络页面,然后点击该网络的名称以查看详细信息:

    前往“VPC 网络”

VPC 原生集群配置

Cloud Composer 支持在您的环境中使用 VPC 原生 GKE 集群。

创建环境期间,您可以启用 VPC 原生(使用别名 IP)功能并配置网络(例如 IP 分配),而不启用专用 IP。

由于 Airflow 任务需要使用 VPC 原生集群来与可通过专用 IP 访问的其他虚拟机通信,因此您还必须启用 VPC 原生功能来配置专用 IP 环境。

配置代理服务器设置

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

NO_PROXY 变量默认设置为一系列 Google 网域,以便从代理中排除这些网域:.google.com,.googleapis.com,metadata.google.internal。此配置可以在代理未配置为处理 Google 服务流量的情况下,创建一个设置了 HTTP_PROXYHTTPS_PROXY 环境变量的环境。