配置 Private Service Connect 健康检查以实现自动跨区域故障切换

本页面介绍了服务提供方如何配置已发布的服务,以通过 Private Service Connect 健康状况支持自动跨区域故障切换。

准备工作

所需的角色

如需获得配置 Private Service Connect 健康状况所需的权限,请让您的管理员为您授予项目的 Compute Network Admin (roles/compute.networkAdmin) IAM 角色。 如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

此预定义角色包含配置 Private Service Connect 健康状况所需的权限。如需查看所需的确切权限,请展开所需权限部分:

所需权限

如需配置 Private Service Connect 健康状况,您需要具有以下权限:

  • compute.regionHealthAggregationPolicies.list
  • compute.regionHealthAggregationPolicies.get
  • compute.regionHealthAggregationPolicies.create
  • compute.regionHealthAggregationPolicies.update
  • compute.regionHealthAggregationPolicies.delete
  • compute.regionHealthSources.list
  • compute.regionHealthSources.get
  • compute.regionHealthSources.create
  • compute.regionHealthSources.update
  • compute.regionHealthSources.delete
  • compute.regionCompositeHealthChecks.list
  • compute.regionCompositeHealthChecks.get
  • compute.regionCompositeHealthChecks.create
  • compute.regionCompositeHealthChecks.update
  • compute.regionCompositeHealthChecks.delete

您也可以使用自定义角色或其他预定义角色来获取这些权限。

配置 Private Service Connect 健康状况以支持自动跨区域故障切换

以下部分介绍了如何配置 Private Service Connect 健康状况检查,以实现自动跨区域故障切换。

虽然 Private Service Connect 健康状况不需要服务使用方进行配置,但只有当使用方在多区域部署中配置受支持的 Private Service Connect 后端时,该功能才能正常运行。如需了解服务使用方如何配置其 VPC 网络以使用 Private Service Connect 健康状况,请参阅自动跨区域故障切换

创建健康状况汇总政策

在要支持跨区域故障切换的每个区域中,至少创建一个健康状况汇总政策。

健康状况汇总政策是一种可重复使用的资源,用于定义后端服务被视为健康状况良好的条件。您可以对多个后端服务应用同一政策,也可以为具有不同健康要求的服务创建不同的政策。

gcloud

使用 gcloud beta compute health-aggregation-policies create 命令。

gcloud beta compute health-aggregation-policies create POLICY \
    --region=REGION \
    --healthy-percent-threshold=PERCENT_HEALTHY \
    --min-healthy-threshold=MINIMUM_HEALTHY

替换以下内容:

  • POLICY:健康状况汇总政策的名称
  • REGION:健康状况汇总政策的区域
  • PERCENT_HEALTHY:后端服务中必须处于健康状态的端点的最低百分比,健康源才能被视为健康,例如 75

    默认值为 60。端点可以是实例组中的虚拟机,也可以是网络端点组 (NEG) 中的网络端点。

  • MINIMUM_HEALTHY:后端服务中必须处于健康状态的端点数量下限,健康源才能被视为健康

    默认值为 1

创建健康数据源

为已发布服务的每个区域实例创建一个健康状况来源。 如果已发布的服务实例依赖于多个后端服务的健康状况,请为每个后端服务分别创建一个健康状况来源。

健康状况来源是将健康状况汇总政策与特定后端服务相关联的资源。复合健康检查会汇总一个或多个健康来源的健康状态,以生成服务的最终复合健康状态。

gcloud

使用 gcloud beta compute health-sources create 命令。

gcloud beta compute health-sources create HEALTH_SOURCE \
    --region=REGION \
    --source-type=BACKEND_SERVICE \
    --sources=BACKEND_SERVICE \
    --health-aggregation-policy=POLICY

替换以下内容:

  • HEALTH_SOURCE:健康源的名称
  • REGION:健康来源的区域

    健康状况汇总政策必须与健康状况来源位于同一区域。

  • BACKEND_SERVICE:要用作健康状况来源的单个后端服务的名称

    后端服务必须满足以下要求:

    • 它必须具有 INTERNALINTERNAL_MANAGED 的负载均衡方案。
    • 它必须与您要创建的健康数据源位于同一区域。
    • 其后端必须是类型为 GCE_VM_IPGCE_VM_IP_PORT 的实例组或网络端点组。
  • POLICY:要应用于相应健康源的健康状况汇总政策的名称

创建复合健康检查

为已发布服务的每个区域实例创建复合健康检查。

复合健康检查会汇总其关联的健康来源的健康状态,从而创建最终的复合健康状态。最终健康状况会应用于您指定为健康状况目标的转发规则的区域级已发布服务实例。

gcloud

使用 gcloud beta compute composite-health-checks create 命令。

gcloud beta compute composite-health-checks create COMPOSITE_HEALTH_CHECK \
    --region=REGION \
    --health-sources=HEALTH_SOURCES \
    --health-destination=HEALTH_DESTINATION

替换以下内容:

  • COMPOSITE_HEALTH_CHECK:复合健康检查的名称
  • REGION:复合健康检查的区域
  • HEALTH_SOURCES:要与复合健康检查相关联的一个或多个健康源的名称

    您可以在逗号分隔列表中包含多个健康数据源。

  • HEALTH_DESTINATION:接收来自此复合健康检查的复合健康状态的转发规则的 URI,例如 projects/PROJECT_ID/regions/REGION/forwardingRules/FORWARDING_RULE

    转发规则必须与支持 Private Service Connect 健康检查的提供方负载均衡器相关联,并且满足以下要求:

    • 它必须具有 INTERNALINTERNAL_MANAGED 的负载均衡方案。
    • 必须与复合健康检查位于同一区域。

后续步骤