使服务可从其他 VPC 网络访问

本教程介绍如何使用 Private Service Connect 使负载均衡服务可供其他 VPC 网络使用。

默认情况下,您在上一教程中创建的内部直通式网络负载平衡器只能在其自身的 VPC 网络中使用。借助 Private Service Connect,您可以发布服务,使其可供其他 VPC 网络中的资源使用。

本教程面向云架构师、网络架构师、网络管理员和 IT 管理员。

目标

  • 创建已发布的服务
  • 为已发布的服务流量创建防火墙规则
  • 获取服务连接 URI

费用

在本文档中,您将使用 Google Cloud的以下收费组件:

如需根据您的预计使用量来估算费用,请使用价格计算器

新 Google Cloud 用户可能有资格申请免费试用

完成本文档中描述的任务后,您可以通过删除所创建的资源来避免继续计费。如需了解详情,请参阅清理

准备工作

  1. 完成上一个教程创建负载均衡服务中的步骤。
  2. 选择您在上一个教程中选择或创建的服务提供方项目 (PRODUCER_PROJECT)。在本教程的步骤中使用此项目。

创建已发布的服务

如需让其他 VPC 网络能够访问该服务,您需要发布该服务。如需发布服务,请在负载均衡器所在的同一网络和区域中创建以下资源:

  • 一种 Private Service Connect 子网,用于在提供方网络和使用方网络之间提供网络地址转换 (NAT) 的 IP 地址。
  • 服务连接。

以下说明介绍了如何创建可从任何项目访问的已发布服务。在生产环境中,您可能需要限制哪些网络或项目可以访问该服务。

控制台

  1. 在 Google Cloud 控制台中,前往 Private Service Connect 页面。

    转到 Private Service Connect

  2. 点击已发布服务标签页。

  3. 点击发布服务

  4. 目标详情部分中,选择负载均衡器

  5. 选择内部直通式网络负载平衡器

  6. 选择您创建的内部负载均衡器,即 service-lb

  7. 对于 Service 名称,输入 published-service

  8. 创建 Private Service Connect NAT 子网:

    1. 点击子网,然后点击预留新子网
    2. 对于名称,输入 nat-subnet
    3. 对于区域,请选择 REGION
    4. 对于 IPv4 范围,输入 10.10.20.0/22
    5. 点击 Add(添加)。
  9. 对于连接偏好设置,选择自动接受所有连接

  10. 点击添加服务

gcloud

  1. 使用 gcloud compute networks subnets create 命令创建 Private Service Connect 子网。

    gcloud compute networks subnets create nat-subnet \
      --network=service-network \
      --region=REGION \
      --range=10.10.20.0/22 \
      --purpose=PRIVATE_SERVICE_CONNECT
    
  2. 如需发布服务,请使用 gcloud compute service-attachments create 命令

    gcloud compute service-attachments create published-service \
      --region=REGION \
      --target-service=projects/PRODUCER_PROJECT/regions/REGION/forwardingRules/service-rule \
      --connection-preference=ACCEPT_AUTOMATIC \
      --nat-subnets=nat-subnet
    

    替换以下内容:

    • PRODUCER_PROJECT:提供方项目的 ID。
    • REGION:服务连接的区域。此区域必须与目标转发规则的 IP 地址的区域相同。

为已发布的服务流量创建防火墙规则

创建防火墙规则,以允许来自 Private Service Connect NAT 子网的流量到达负载均衡器的后端虚拟机。

控制台

  1. 在 Google Cloud 控制台中,前往防火墙政策页面。

    前往“防火墙政策”

  2. 如需允许来自 Private Service Connect NAT 子网的流量到达负载均衡器的后端虚拟机,请点击创建防火墙规则,然后使用以下设置:

    • 对于名称,输入 fw-allow-nat
    • 对于网络,请选择 service-network
    • 优先级字段中,输入 1000
    • 对于流量方向,选择入站
    • 对于对匹配项执行的操作,选择允许
    • 对于目标,选择 Specified target tags
    • 对于目标标记,请输入 allow-nat
    • 对于来源过滤条件,选择 IPv4 范围
    • 对于来源 IPv4 范围,输入 10.10.20.0/22
    • 对于协议和端口,选择全部允许
  3. 点击创建

gcloud

  1. 创建 fw-allow-nat 防火墙规则,以允许从 Private Service Connect NAT 子网到虚拟机后端的通信:

    gcloud compute firewall-rules create fw-allow-nat \
        --network=service-network \
        --action=allow \
        --direction=ingress \
        --source-ranges=10.10.20.0/22 \
        --rules=tcp,udp,icmp
    

获取服务连接 URI

您将在下一个教程从另一个 VPC 网络访问服务中使用服务连接 URI 来配置端点。

控制台

  1. 在 Google Cloud 控制台中,前往 Private Service Connect 页面。

    转到 Private Service Connect

  2. 点击已发布服务标签页。

  3. 点击要查看的服务。

    服务连接字段包含服务连接 URI。

gcloud

  1. 使用 gcloud compute service-attachments describe 命令查看已发布服务的详细信息。

    selfLink 字段包含服务连接 URI。

    gcloud compute service-attachments describe \
        published-service --region=REGION
    

    REGION 替换为包含服务附件的区域。

后续步骤