将环境设置为在 VPC 网络中使用专用池

本页面介绍如何设置网络环境,以在 VPC 网络中使用专用池。如果您不熟悉专用池,请参阅专用池概览

了解网络配置选项

专用池托管在 Google 拥有的 Virtual Private Cloud 网络中,该网络称为服务提供方网络。设置专用池时,您可以选择使用服务提供方网络,也可以在服务提供方网络和包含您的资源的 VPC 网络之间设置专用连接。

根据您的组织需求来选择以下某种网络配置方案:

  • 使用服务提供方网络:在以下情况下,请使用此选项:

    这是用于创建专用池的默认网络选项,无需任何网络设置。如果您对此选项感兴趣,请继续创建专用池

  • 在服务提供方网络和 VPC 网络之间建立专用连接:通过专用连接,VPC 网络中的虚拟机实例和专用池可以使用内部 IP 地址进行专有通信。在以下情况下,请使用此选项:

    • 您希望构建能够访问您的 VPC 网络中的资源
    • 您希望能够配置机器类型和大小

在 VPC 网络与服务提供方网络之间建立专用连接

  1. 您必须有一个用于接入服务提供方网络的现有 VPC 网络

  2. 如需使用本指南中的命令行示例,请安装并配置 Google Cloud CLI

  3. 启用 API:

    控制台


    启用 Cloud Build and the Service Networking API。

    启用 API

    gcloud

    启用 Cloud Build API 和 Service Networking API:

    gcloud services enable cloudbuild.googleapis.com servicenetworking.googleapis.com
    
  4. 如需获取设置专用连接所需的权限,请让管理员向您授予 VPC 网络所在 Google Cloud 项目的 Compute Engine Network Admin (roles/compute.networkAdmin) IAM 角色。如需详细了解如何授予角色,请参阅管理访问权限

    您也可以通过自定义角色或其他预定义角色来获取所需的权限。

  5. 在 VPC 网络中,分配一个已命名的内部 IP 范围:

    您在此处指定的 IP 范围将受 VPC 网络中定义的防火墙规则的约束。

    Cloud Build 为 Docker 桥接网络预留 IP 范围 192.168.10.0/24172.17.0.0/16。为项目中的资源分配 IP 范围时,建议选择 192.168.10.0/24172.17.0.0/16 以外的范围,以防 Cloud Build 构建器访问这些资源。

    例如,由于存在重叠,无法从 Cloud Build gke-deploy 构建器访问 Google Kubernetes Engine 控制平面地址范围 192.168.10.96/28

    控制台

    1. 前往 Google Cloud 控制台中的“VPC 网络”页面。

      转到“VPC 网络”页面

    2. 选择将连接到专用池的 VPC 网络的 VPC 网络。

    3. 选择专用服务访问通道标签页。

    4. 专用服务访问通道标签页中,选择为服务分配的 IP 范围标签页。

    5. 点击分配 IP 范围

    6. 输入分配的范围的名称描述

    7. 指定分配的 IP 范围

      • 如需指定 IP 地址范围,请选择自定义,然后输入 CIDR 地址块。
      • 如需指定前缀长度并让 Google 选择可用地址范围,请选择自动,然后输入前缀长度。前缀长度不得超过 /24,例如 /22/21 等。
    8. 点击分配以创建分配的范围。

    gcloud

    如需指定地址范围和前缀长度(子网掩码),请使用 addressesprefix-length 标志。前缀长度必须为 /24 或更低,例如 /22、/21 等。例如,如需分配 CIDR 地址块 192.168.0.0/16,请将地址指定为 192.168.0.0,并将前缀长度指定为 16

      gcloud compute addresses create RESERVED_RANGE_NAME \
          --global \
          --purpose=VPC_PEERING \
          --addresses=192.168.0.0 \
          --prefix-length=16 \
          --description=DESCRIPTION \
          --network=VPC_NETWORK
    

    若只指定前缀长度(子网掩码),请仅使用 prefix-length 标志。如果您省略地址范围,则 Google Cloud 会自动选择您的 VPC 网络中未使用的地址范围。以下示例选择的是前缀长度为 16 位的未使用的 IP 地址范围。

      gcloud compute addresses create RESERVED_RANGE_NAME \
          --global \
          --purpose=VPC_PEERING \
          --prefix-length=16 \
          --description=DESCRIPTION \
          --network=VPC_NETWORK
    

    将命令中的占位值替换为以下内容:

    • RESERVED_RANGE_NAME 是已分配范围的名称,例如 my-allocated-range
    • DESCRIPTION 是对该范围的描述,例如 allocated for my-service
    • VPC_NETWORK 是您的 VPC 网络的名称,例如 my-vpc-network

  6. 在服务提供方网络与您的 VPC 网络之间创建专用连接:

    控制台

    1. 前往 Google Cloud 控制台中的“VPC 网络”页面。

      转到“VPC 网络”页面

    2. 选择将连接到专用池的 VPC 网络的 VPC 网络。

    3. 选择专用服务访问通道标签页。

    4. 专用服务访问通道标签页中,选择连到服务的专用连接标签页。

    5. 点击创建连接以在您的网络与服务提供方网络之间创建专用连接。

    6. 对于指定的分配范围,请选择您在上一步中创建的分配范围。

    7. 点击连接以创建连接。

    gcloud

    1. 创建专用连接:

      gcloud services vpc-peerings connect \
          --service=servicenetworking.googleapis.com \
          --ranges=ALLOCATED_RANGE_NAME \
          --network=VPC_NETWORK \
          --project=PROJECT_ID
      

      将命令中的占位值替换为以下内容:

      • ALLOCATED_RANGE_NAME:您在上一步中创建的分配范围的名称。
      • VPC_NETWORK:您的 VPC 网络的名称。
      • PROJECT_ID:包含 VPC 网络的项目的 ID。

      该命令启动一个可长时间运行的操作,并返回操作名称。

    2. 检查操作是否成功,将 OPERATION_NAME 替换为从上一步返回的操作名称。

      gcloud services vpc-peerings operations describe \
          --name=OPERATION_NAME
      
  7. [可选:共享 VPC 场景]。如果您在使用共享 VPC,请在宿主项目中创建分配的 IP 范围和专用连接。这些任务通常必须由宿主项目中的网络管理员执行。使用专用连接设置宿主项目后,服务项目中的虚拟机实例可以使用与服务提供方网络的专用连接。托管 VPC 连接的项目和包含专用池的项目必须属于同一组织。

  8. [可选:使用防火墙规则]。如果您要在 VPC 网络中创建入站防火墙规则,请在入站规则的来源过滤条件中指定您在此处分配的相同 IP 范围。

后续步骤