指定网络和子网

本文档介绍了如何在创建适用于 Apache Flink 的 BigQuery 引擎部署时指定网络和子网。借助虚拟私有云 (VPC) 网络、子网和防火墙规则,您的部署和作业可以与资源通信,同时保持系统安全。正确配置这些元素有助于确保作业按预期运行,并确保作业和资源保持安全。

本文档要求您了解如何创建 Google Cloud 网络和子网。本文档还要求您熟悉下一部分中介绍的网络术语。

Google Cloud 网络术语

  • VPC 网络。VPC 网络是物理网络的虚拟版本,在 Google 的生产网络内实现。VPC 有时称为“网络”,可为项目中的资源提供连接。

    如需了解详情,请参阅 VPC 网络概览

  • 子网子网。术语“subnetwork”(子网)和“subnet”(子网)是同义词。每个 VPC 网络均由一个或多个 IP 地址范围(即“子网”)组成。子网属于区域级资源。网络必须至少先具有一个子网,然后才能使用。

    如需了解详情,请参阅子网

  • 防火墙规则。VPC 防火墙规则可允许或拒绝传入或传出 VPC 网络中的虚拟机 (VM) 实例的连接。您可以在网络级别定义防火墙规则,但允许或拒绝连接是按具体实例执行。

    如需了解详情,请参阅 Virtual Private Cloud (VPC) 防火墙规则

部署的网络和子网

创建部署时,您必须指定网络和子网。为了让作业能够运行,作业使用的资源需要位于您在部署中指定的 VPC 网络中。这些资源包括 Google Cloud 资源和外部资源。

例如,如果您的作业会从独立的 Apache Kafka 集群读取数据,则 Apache Kafka 集群需要与适用于 Apache Flink 的 BigQuery 引擎部署位于同一 VPC 网络中。

部署和资源不必位于同一子网中。

指定网络参数的准则

  • 您可以使用网络参数在项目中选择自动模式 VPC 网络

  • 您只能使用网络名称来指定网络,而不能通过完整的网址来指定网络。

  • 您无法使用共享 VPC 网络或 VPC Service Controls。

虽然 default 网络具有允许部署运行作业的配置,但出于安全考虑,我们建议您为适用于 Apache Flink 的 BigQuery 引擎创建单独的网络。default 网络不安全,因为它预先填充了一些允许连接传入实例的防火墙规则。

指定子网参数的准则

  • 使用子网名称指定子网。

  • 您必须选择与部署位于同一区域的子网。

  • 子网必须位于您在创建部署时指定的 VPC 内。

  • 该子网必须启用专用 Google 访问通道。如需了解详情,请参阅配置专用 Google 访问通道

  • 每个子网都会定义一个 IPv4 地址范围。不支持 IPv6 子网范围。

  • 您最多可以为每个部署提供一个子网。

  • 子网中的 IP 地址范围必须足够大,才能支持您的所有任务槽。

  • IP 地址范围 172.16.0.0/14(172.16.0.0 - 172.19.255.255)已被预留。您无法在子网中使用此范围。

创建指定网络的部署

以下示例展示了如何在创建部署时指定网络和子网。

gcloud

如需使用 gcloud CLI 创建部署,请使用 gcloud alpha managed-flink deployments create 命令。

gcloud alpha managed-flink deployments create DEPLOYMENT_ID \
  --project=PROJECT_ID \
  --location=REGION \
  --network-config-vpc=NETWORK_NAME \
  --network-config-subnetwork=SUBNET_NAME \
  --max-slots=TASK_SLOTS

替换以下内容:

  • DEPLOYMENT_ID:部署的名称
  • PROJECT_ID:您的项目 ID
  • REGION:适用于 Apache Flink 的 BigQuery 引擎区域,例如 us-central1
  • NETWORK_NAME:网络的名称。如需使用默认网络,请输入 default
  • SUBNET_NAME:您的子网的名称。如需使用默认子网,请输入 default
  • TASK_SLOTS:要分配给部署的任务槽数

防火墙规则

VPC 防火墙规则支持在适用于 Apache Flink 的作业、 Google Cloud 资源以及用户拥有的资源之间进行访问管理。防火墙规则可允许或拒绝传入和传出作业使用的资源的流量。

向部署分配 VPC 网络和子网后,该部署将遵循您在 VPC 防火墙规则中定义的所有规则。因此,您可以使用防火墙入站和出站规则来控制您的部署和作业可以访问哪些资源。

如需了解详情,请参阅使用 VPC 防火墙规则

防火墙入站规则示例

在以下示例中,创建了一条防火墙入站规则。项目所有者、编辑者或安全管理员可以使用 gcloud compute firewall-rules create 命令来创建入站流量允许规则,以允许在部署与作业使用的资源(例如独立的 Apache Kafka 集群或 Cloud SQL)之间传输流量。

gcloud compute firewall-rules create FIREWALL_RULE_NAME_INGRESS \
    --network=NETWORK \
    --action=allow \
    --direction=ingress \
    --source-ranges=SOURCE_RANGE \
    --destination-ranges=DESTINATION_RANGE\
    --priority=PRIORITY_NUM  \

替换以下内容:

  • FIREWALL_RULE_NAME_INGRESS:防火墙规则的名称。

  • NETWORK:您的 VPC 网络的名称

  • SOURCE_RANGE:部署的子网的 IPv4 地址范围,以 CIDR 格式的英文逗号分隔列表的形式提供

  • DESTINATION_RANGE:作业需要访问的资源的 IPv4 地址范围,以 CIDR 格式的英文逗号分隔列表的形式提供

    包括所选子网的主要 IP 地址范围。

  • PRIORITY_NUM:防火墙规则的优先级

    这个数字越小,优先级就越高,0 表示最高优先级。

如需了解详情和示例,请参阅创建 VPC 防火墙规则