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

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

了解网络配置选项

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

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

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

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

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

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

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

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

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

  3. 启用 API:


    Enable the Cloud Build and the Service Networking APIs.

    Enable the APIs

    启用 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. 点击分配以创建分配的范围。

    如需指定地址范围和前缀长度(子网掩码),请使用 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. 点击连接以创建连接。

    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 范围。

后续步骤