创建 Private Service Connect 后端

您可以使用负载均衡器来强制执行政策,从而使用 Private Service Connect 后端连接到支持的服务。您通过映射到包含 Private Service Connect 网络端点组 (NEG) 的后端的转发规则连接到服务。

如需详细了解支持的服务和配置,请参阅 Private Service Connect 后端简介

本指南介绍如何将 Private Service Connect NEG 添加到负载均衡器以访问 Google API 或已发布的服务。本指南不包含完整的负载均衡器配置。

如需有关如何创建具有 Private Service Connect 后端的负载均衡器的说明,请参阅以下内容:

角色

Compute Load Balancer Admin 角色 (roles/compute.loadBalancerAdmin) 包含执行本指南中描述的任务所需的权限。

准备工作

  1. 确定要连接的 API 或服务:

    • 对于 Google API:

    • 对于已发布的服务:

      • 如果您要发布自己的服务,请参阅发布代管式服务

      • 如果您要连接到 Google Cloud 或第三方已发布服务,请向提供方咨询以下信息:

        • 您要连接的服务连接的 URI。

        • 您对用于发送请求的 DNS 名称的任何要求。您可能需要在网址映射配置中使用特定的 DNS 名称。

  2. 确定哪种负载均衡器类型支持您要连接的服务,并确保您熟悉要更新的负载均衡器。本指南介绍了如何将 Private Service Connect NEG 添加到负载均衡器中,但您可能需要执行其他配置步骤。

    如需了解详情,请参阅支持的负载均衡器和目标

创建 Private Service Connect NEG

创建 NEG 时,可以选择它连接到的目标类型:

  • 已发布的服务
  • 位置 Google API
  • 全球 Google API

创建 NEG 以连接到已发布的服务

创建指向已发布服务的 Private Service Connect NEG 时,您需要该服务的服务连接 URI。服务连接的格式为 projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME

如需了解此配置支持的负载均衡器,请参阅已发布的服务目标

控制台

  1. 在 Google Cloud 控制台中,进入网络端点组页面。

    进入“网络端点组”

  2. 点击创建网络端点组

  3. 输入网络端点组的名称。

  4. 网络端点组类型字段中,选择 Private Service Connect NEG(区域级)

  5. 配置目标:

    1. 对于目标,选择已发布的服务
    2. 对于目标服务,输入服务连接的 URI。
    3. 选择要在其中创建网络端点组的网络子网

      子网必须与已发布服务位于同一区域。

  6. 点击创建

gcloud

使用 gcloud compute network-endpoint-groups create 命令:

gcloud compute network-endpoint-groups create NEG_NAME \
    --network-endpoint-type=private-service-connect \
    --psc-target-service=TARGET_SERVICE \
    --region=REGION \
    --network=NETWORK \
    --subnet=SUBNET

请替换以下内容:

  • NEG_NAME:网络端点组的名称。

  • TARGET_SERVICE:服务连接的 URI。

  • REGION:要在其中创建网络端点组的区域。该区域必须与目标服务的区域相同。

  • NETWORK:要在其中创建网络端点组的网络。如果省略,则使用默认网络。

  • SUBNET:要在其中创建网络端点组的子网。子网必须与目标服务位于同一区域。如果您指定了网络,则必须指定子网。如果同时省略网络和子网,则使用默认网络,并使用指定 REGION 中的默认子网。

创建 NEG 以连接到位置 Google API

您可以创建 NEG 以连接到位置 Google API。

如需了解此配置支持的负载均衡器,请参阅位置 Google API 目标

控制台

  1. 在 Google Cloud 控制台中,进入网络端点组页面。

    进入“网络端点组”

  2. 点击创建网络端点组

  3. 输入网络端点组的名称。

  4. 网络端点组类型字段中,选择 Private Service Connect NEG(区域级)

  5. 配置目标:

    1. 对于目标,选择 Google API
    2. 选择区域目标服务
  6. 点击创建

gcloud

使用 gcloud compute network-endpoint-groups create 命令:

gcloud compute network-endpoint-groups create NEG_NAME \
    --network-endpoint-type=private-service-connect \
    --psc-target-service=TARGET_SERVICE \
    --region=REGION

请替换以下内容:

  • NEG_NAME:网络端点组的名称。

  • TARGET_SERVICE:您要连接到的位置服务端点

  • REGION:要在其中创建网络端点组的区域。该区域必须与目标服务的区域相同。

创建 NEG 以连接到全球 Google API

您可以创建 Private Service Connect NEG 以连接到全球 Google API。NEG 是区域性的,即使它们连接到全球 API 也是如此。在此配置中,系统会忽略该区域。

如需了解此配置支持的负载均衡器,请参阅全球 Google API 目标

控制台

  1. 在 Google Cloud 控制台中,进入网络端点组页面。

    进入“网络端点组”

  2. 点击创建网络端点组

  3. 输入网络端点组的名称。

  4. 网络端点组类型字段中,选择 Private Service Connect NEG(区域级)

  5. 配置目标:

    1. 对于目标,选择全球 Google API
    2. 选择区域目标服务
  6. 点击创建

gcloud

使用 gcloud compute network-endpoint-groups create 命令:

gcloud compute network-endpoint-groups create NEG_NAME \
    --network-endpoint-type=private-service-connect \
    --psc-target-service=TARGET_SERVICE \
    --region=REGION

请替换以下内容:

  • NEG_NAME:网络端点组的名称。

  • TARGET_SERVICE:您要连接到的全球 Google API

  • REGION:要在其中创建网络端点组的区域。

将 Private Service Connect 后端添加到负载均衡器

您可以配置受支持的负载均衡器以将流量定向到 Private Service Connect 后端。

如需详细了解受支持的配置,请参阅规范

将后端添加到应用负载均衡器

将 NEG 添加到全球外部应用负载均衡器、内部应用负载均衡器、区域级外部应用负载均衡器或跨区域内部应用负载均衡器。

控制台

修改该负载均衡器

  1. 在 Google Cloud 控制台中,转到负载均衡页面。

    转到“负载均衡”

  2. 点击要修改的负载均衡器。

  3. 点击修改

更新后端配置

  1. 点击后端配置
  2. 展开后端服务列表,然后选择创建后端服务
  3. 输入后端服务的名称。
  4. 后端类型设置为 Private Service Connect 网络端点组
  5. 后端部分,点击 Private Service Connect 网络端点组列表,然后选择您创建的 Private Service Connect NEG。点击完成
  6. 如果您要配置全局外部应用负载均衡器以连接到多个区域中的已发布服务,并且创建了多个 Private Service Connect NEG,请点击添加后端选择其他 NEG。

    重复此步骤,直到此代管式服务的所有 NEG 都添加到后端服务。

  7. 点击创建

更新路由规则

  1. 点击路由规则
  2. 为添加的每个后端服务输入主机路径
  3. 如需查看配置,请点击检查并最终确定
  4. 点击创建

gcloud

更新后端配置

  1. 为目标服务创建后端服务。

    • 如果要将后端服务添加到区域性负载均衡器,请使用 --region 标志指定与负载均衡器相同的区域。

      gcloud compute backend-services create BACKEND_SERVICE_NAME \
          --load-balancing-scheme=SCHEME \
          --protocol=HTTPS \
          --region=REGION
      

      请替换以下内容:

      • BACKEND_SERVICE_NAME:后端服务的名称。
      • SCHEME:您要修改的负载均衡器的负载均衡方案:
        • 对于区域级外部应用负载均衡器,请使用 EXTERNAL_MANAGED
        • 对于内部应用负载均衡器,请使用 INTERNAL_MANAGED
      • REGION:后端服务的区域。使用与 NEG 相同的区域。
    • 如果您要向全球外部应用负载均衡器添加后端服务,请使用 --global 标志。

      gcloud compute backend-services create BACKEND_SERVICE_NAME \
          --load-balancing-scheme=EXTERNAL_MANAGED \
          --protocol=HTTPS \
          --global
      

      BACKEND_SERVICE_NAME 替换为后端服务的名称。

  2. 添加指向目标服务的 Private Service Connect NEG。

    • 如果要将后端服务添加到区域性负载均衡器,请使用 --region 标志指定与负载均衡器相同的区域。

      gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \
          --network-endpoint-group=NEG_NAME \
          --network-endpoint-group-region=NEG_REGION \
          --region=REGION
      

      请替换以下内容:

      • BACKEND_SERVICE_NAME:后端服务的名称。
      • NEG_NAME:网络端点组的名称。
      • NEG_REGION:网络端点组的区域。
      • REGION:后端服务的区域。
    • 如果您要向全球外部应用负载均衡器添加后端服务,请使用 --global 标志。

      如果您已为同一服务在不同区域中创建了多个 NEG,请重复此步骤以将所有 NEG 添加到后端服务。

      gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \
          --network-endpoint-group=NEG_NAME \
          --network-endpoint-group-region=NEG_REGION \
          --global
      

      请替换以下内容:

      • BACKEND_SERVICE_NAME:后端服务的名称。
      • NEG_NAME:网络端点组的名称。
      • NEG_REGION:网络端点组的区域。

更新路由规则

  1. 对于您创建的每个后端服务,请向负载均衡器的网址映射添加路径匹配器。

    • 如果网址映射是区域性的,请使用 --region 标志指定区域。

      gcloud compute url-maps add-path-matcher URL_MAP_NAME \
          --path-matcher-name=PATH_MATCHER \
          --default-service=BACKEND_SERVICE_NAME \
          --region=REGION
      

      请替换以下内容:

      • URL_MAP_NAME:网址映射的名称。
      • PATH_MATCHER:路径匹配器的名称。
      • BACKEND_SERVICE_NAME:后端服务的名称。
      • REGION:网址映射的区域。
    • 如果网址映射为全局,请指定 --global 标志。

      gcloud compute url-maps add-path-matcher URL_MAP_NAME \
          --path-matcher-name=PATH_MATCHER \
          --default-service=BACKEND_SERVICE_NAME \
          --global
      

      请替换以下内容:

      • URL_MAP_NAME:网址映射的名称。
      • PATH_MATCHER:路径匹配器的名称。
      • BACKEND_SERVICE_NAME:后端服务的名称。
  2. 对于每个主机名,添加主机规则。

    每条主机规则只能引用一个路径匹配器,但两条或更多主机规则可以引用同一路径匹配器。

    • 如果网址映射是区域性的,请使用 --region 标志指定区域。

      gcloud compute url-maps add-host-rule URL_MAP_NAME \
          --hosts=HOST \
          --path-matcher-name=PATH_MATCHER \
          --region=REGION
      

      请替换以下内容:

      • URL_MAP_NAME:网址映射的名称。
      • HOST:要发送请求以使用此服务的主机名。
      • PATH_MATCHER:路径匹配器的名称。
      • REGION:网址映射的区域。
    • 如果网址映射为全局,请指定 --global 标志。

      gcloud compute url-maps add-host-rule URL_MAP_NAME \
          --hosts=HOST \
          --path-matcher-name=PATH_MATCHER \
          --global
      

      请替换以下内容:

      • URL_MAP_NAME:网址映射的名称。
      • HOST:要发送请求以使用此服务的主机名。
      • PATH_MATCHER:路径匹配器的名称。

将后端添加到区域级内部代理网络负载均衡器

如果 NEG 指向已发布的服务,您可以将 Private Service Connect NEG 后端添加到区域级内部代理网络负载均衡器。区域级内部代理网络负载均衡器仅支持一项后端服务。

如需配置区域级内部代理网络负载均衡器,请按照使用可用区级后端设置区域级内部代理网络负载均衡器的说明操作,但不要完成“创建可用区级 NEG”步骤或配置健康检查。请按照以下说明操作,将您创建的 Private Service Connect NEG 添加到 Private Service Connect 后端,而不是配置可用区级 NEG。

控制台

  1. 在您要创建的区域级内部代理网络负载均衡器中,点击后端配置
  2. 对于后端类型,选择 Private Service Connect 网络端点组
  3. 对于新后端,选择您创建的 NEG。
  4. 保留其余的默认值,然后点击完成
  5. 在 Google Cloud 控制台中,验证后端配置旁边显示了对勾标记。如果没有显示对勾标记,请仔细检查您是否已完成所有步骤。

gcloud

  1. 为目标服务创建后端服务。

    gcloud compute backend-services create BACKEND_SERVICE_NAME \
        --load-balancing-scheme=INTERNAL_MANAGED \
        --protocol=TCP \
        --region=REGION
    

    请替换以下内容:

    • BACKEND_SERVICE_NAME:后端服务的名称。
    • REGION:后端服务的区域。使用与 NEG 相同的区域。
  2. 添加指向目标服务的 Private Service Connect NEG。

    gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \
        --network-endpoint-group=NEG_NAME \
        --network-endpoint-group-region=NEG_REGION \
        --region=REGION
    

    请替换以下内容:

    • BACKEND_SERVICE_NAME:后端服务的名称。
    • NEG_NAME:网络端点组的名称。
    • NEG_REGION:网络端点组的区域。
    • REGION:后端服务的区域。

将后端添加到区域级外部代理网络负载均衡器

如果 NEG 指向已发布的服务,您可以将 Private Service Connect NEG 后端添加到区域级外部代理网络负载均衡器。此负载均衡器仅支持一项后端服务。

如需配置负载均衡器,请按照说明使用可用区级后端设置区域级外部代理网络负载均衡器,但不要完成“创建可用区级 NEG”步骤或配置健康检查。请按照以下说明操作,将您创建的 Private Service Connect NEG 添加到 Private Service Connect 后端,而不是配置可用区级 NEG。

控制台

  1. 在您要创建的区域级外部代理网络负载均衡器中,点击后端配置
  2. 对于后端类型,选择 Private Service Connect 网络端点组
  3. 对于新后端,选择您创建的 NEG。
  4. 保留其余的默认值,然后点击完成
  5. 在 Google Cloud 控制台中,验证后端配置旁边显示了对勾标记。如果没有显示对勾标记,请仔细检查您是否已完成所有步骤。

gcloud

  1. 为目标服务创建后端服务。

    gcloud compute backend-services create BACKEND_SERVICE_NAME \
        --load-balancing-scheme=EXTERNAL_MANAGED \
        --protocol=TCP \
        --region=REGION
    

    请替换以下内容:

    • BACKEND_SERVICE_NAME:后端服务的名称。
    • REGION:后端服务的区域。使用与 NEG 相同的区域。
  2. 添加指向目标服务的 Private Service Connect NEG。

    gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \
        --network-endpoint-group=NEG_NAME \
        --network-endpoint-group-region=NEG_REGION \
        --region=REGION
    

    请替换以下内容:

    • BACKEND_SERVICE_NAME:后端服务的名称。
    • NEG_NAME:网络端点组的名称。
    • NEG_REGION:网络端点组的区域。
    • REGION:后端服务的区域。

列出后端

您可以列出所有已配置的 Private Service Connect 后端。

控制台

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

    转到 Private Service Connect

  2. 点击已连接的端点标签页。

    Private Service Connect 后端显示在负载均衡器端点部分中。

描述后端

您可以描述 Private Service Connect 后端以查看其详细信息,包括其连接状态。

控制台

  1. 列出可用的后端
  2. 点击您要描述的后端。

问题排查

访问负载均衡器的转发规则时出错

如果您在尝试访问负载均衡器的转发规则时看到 404 错误,则该错误可能是由以下某种原因造成的:

  • 网址映射尚未传播。

    如果您刚刚创建了负载均衡器,请等待几分钟。

  • 您在请求中使用的网址与网址映射中定义的网址不匹配。

    验证您正在尝试的网址与负载均衡器中的网址映射配置匹配。

  • 服务提供方后端不支持您尝试访问的网址

    请服务提供方来验证您应该使用哪个网址来访问其服务。