配置专用 IP Cloud Composer 环境

本页面介绍如何配置专用 IP Cloud Composer 环境。

如果您启用专用 IP,那么 Cloud Composer 仅会为您的环境中的托管式 Google Kubernetes Engine 和 Cloud SQL 虚拟机分配专用 IP (RFC 1918) 地址。

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

准备工作

访问控制

网络要求

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

  • 确保不存在专用 IP 块冲突。如果您的 VPC 网络及其已建立的 VPC 对等体与 Google 管理的租户项目中的 VPC 网络之间存在重叠的 IP 地址块,Cloud Composer 将无法创建您的环境。 请参阅下表中的 Web 服务器 IP 范围列,了解每个区域使用的默认设置。
  • 确保各个 Cloud Composer GKE pod 和服务都有足够的次要 IP 地址范围。GKE 会在次要 IP 地址范围内搜索 IP 别名。如果 GKE 找不到某一范围,则 Cloud Composer 无法创建您的环境。
  • 确保您的 VPC 网络中的 VPC 对等互连连接数不超过 25 个。请考虑以下事项:
    • 对于每个专用 IP Cloud Composer 环境,Cloud Composer 会为租户项目网络创建一个对等互连连接。
    • 专用 GKE 集群会在您的 VPC 网络中另外创建一个 VPC 对等互连连接。
    • Cloud Composer 最多可以支持 12 个专用 IP Cloud Composer 环境。
    • 您最多可以创建的专用 IP Cloud Composer 环境数量取决于您要在 VPC 网络中使用的 VPC 对等互连连接数。
  • 确保子网中的次要范围数不超过 30 个。请考虑以下事项:
    • 专用 IP Cloud Composer 环境的 GKE 集群会在该子网中创建两个次要范围。您可以在同一区域中为同一 VPC 网络创建多个子网。
    • 最多支持 30 个次要范围。由于每个专用 IP Cloud Composer 环境都需要两个次要范围(用于 Cloud Composer GKE pod 和服务),因此每个子网最多支持 15 个专用 IP Cloud Composer 环境。

VPC 原生配置

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

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

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

下一部分提供了专用 IP 和次要范围配置的示例。

配置专用 IP Cloud Composer 环境和次要范围

控制台

  1. 打开 Google Cloud Console 中的创建环境页面。

    打开“创建环境”页面

  2. 配置您的环境
  3. 勾选启用 VPC 原生(使用别名 IP)
  4. 根据需要输入环境的 GKE 集群的网络配置,包括 IP 别名的次要范围。
  5. 要启用专用 IP Cloud Composer 环境,请选中专用 IP 环境
  6. GKE 集群主节点专用 IP 范围下,输入主实例 VPC 的 IP 范围,或使用默认 IP 范围
  7. 要为您的环境中的 GKE 集群启用公共端点,请选中使用 GKE 主实例的外部 IP 地址访问该实例

    您的集群已配置为停用公共端点访问权限

  8. Web 服务器专用 IP 下,输入 Airflow Web 服务器的 IP 范围,或使用默认 IP 范围
  9. Cloud SQL 专用 IP 下,输入 Cloud SQL 实例的 IP 范围,或使用默认 IP 范围
  10. 完成环境配置后,点击创建

gcloud

根据需要配置您的环境,包括以下专用 IP Cloud Composer 环境参数:

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION --enable-private-environment \
    OTHER_ARGUMENTS

除非特别指定,否则以下参数均为必填项:

  • ENVIRONMENT_NAME 是环境的名称。该名称必须与 ^[a-z](?:[-0-9a-z]{0,62}[0-9a-z])?$ 格式匹配
  • LOCATION 是环境所在的 Compute Engine 区域。
  • --enable-private-environment 用于启用专用 IP Cloud Composer 环境。
  • --enable-ip-alias 用于启用 VPC 原生(使用别名 IP)功能。 使用 --enable-private-environment 时或为 pod 和服务配置次要范围时,必须填写此参数:
    • --cluster-secondary-range-name 或 --cluster-ipv4-cidr 用于配置 pod 的次要范围。
    • --services-secondary-range-name--services-ipv4-cidr 用于配置服务的次要范围。
  • master-ipv4-cidr 用于为主服务器的 VPC 指定专用 RFC 1918 范围。
  • (可选)enable-private-endpoint 用于为您的环境中的 GKE 集群启用公共端点。 您的集群已配置为停用公共端点访问权限

以下示例会在 us-central1 区域中创建运行受支持的最新 Cloud Composer 映像版本的环境,该环境使用 n1-standard-2 机器。

该环境启用了专用 IP,并且 GKE 主服务器 VPC 的 IP 范围为 192.168.2.0/28

gcloud composer environments create test-environment \
    --location us-central1 \
    --zone us-central1-f \
    --machine-type n1-standard-2 \
    --image-version composer-latest-airflow-x.y.z \
    --enable-ip-alias \
    --enable-private-environment \
    --enable-private-endpoint \
    --master-ipv4-cidr 192.168.2.0/28 

API

如需使用 Cloud Composer REST API 创建新的 Cloud Composer 环境,请构建一个 environments.create API 请求,并使用您的配置信息填充 Environment 资源。

例如,此 API 请求在地区 us-central1-c 中创建一个名为 privateip-test 的新环境:

POST https://composer.googleapis.com/v1/projects/test-project/locations/us-central1/environments{
  "config":{
    "nodeConfig":{
      "ipAllocationPolicy":{
        "useIpAliases":true,
        "clusterIpv4CidrBlock":"10.56.0.0/14",
        "servicesIpv4CidrBlock":"10.122.0.0/20"
      },
      "location":"projects/test-project/zones/us-central1-c",
      "network":"projects/test-project/global/networks/default",
      "oauthScopes":[

      ],
      "subnetwork":"projects/test-project/regions/us-central1/subnetworks/default",
      "tags":[

      ]
    },
    "nodeCount":3,
    "privateEnvironmentConfig":{
      "cloudSqlIpv4CidrBlock":"10.32.0.0/12",
      "webServerIpv4CidrBlock":"172.30.240.0/24",
      "enablePrivateEnvironment":true,
      "privateClusterConfig":{
        "enablePrivateEndpoint":false,
        "masterIpv4CidrBlock":"172.18.50.0/28"
      }
    },
    "softwareConfig":{
      "airflowConfigOverrides":{

      },
      "envVariables":{

      },
      "pythonVersion":"3",
      "pypiPackages":{

      }
    }
  },
  "labels":{
    "purpose":"test"
  },
  "name":"projects/test-project/locations/us-central1/environments/privateip-test"
}

默认 IP 范围

区域 GKE 主实例 IP 地址范围 (GKE master IP range) Web 服务器 IP 范围 Cloud SQL IP 范围
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
australia-southeast1 172.16.6.0/23 172.31.252.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-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-west6 172.16.14.0/23 172.31.248.0/24 10.0.0.0/12
northamerica-northeast1 172.16.16.0/23 172.31.247.0/24 10.0.0.0/12
southamerica-east1 172.16.18.0/23 172.31.246.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-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