配置复合健康检查以实现自动跨区域故障切换

本页介绍服务提供方如何配置复合健康检查,以支持已发布服务的自动跨区域故障切换。

准备工作

所需的角色

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

此预定义角色可提供 配置复合健康检查所需的权限。如需查看所需的确切权限,请展开所需权限部分:

所需权限

配置复合健康检查需要以下权限:

  • 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 后端时,此功能才有效。 如需了解服务使用方如何配置其 VPC 网络以使用复合健康检查, 请参阅 自动跨区域故障切换

创建健康状况汇总政策

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

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

控制台

  1. 在 Google Cloud 控制台中,前往 复合健康检查 页面:

    前往复合健康检查

  2. 点击健康状况汇总政策

  3. 点击创建健康状况汇总政策

  4. 输入健康状况汇总政策的名称。

  5. 可选:输入政策说明。

  6. 点击区域 ,然后为健康状况汇总 政策选择一个区域。

  7. 点击下一步

  8. 健康状况百分比阈值 框中,输入如要使健康状况来源被视为健康,后端服务中必须处于健康状态的端点的最低百分比,例如 75

  9. 最低健康状况阈值 框中,输入如要使健康状况来源被视为健康,后端服务中必须处于健康状态的端点的数量下限。

  10. 点击创建

gcloud

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

gcloud 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

API

regionHealthAggregationPolicies.insert 方法发送请求。

HTTP 方法和网址:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/healthAggregationPolicies

请求 JSON 正文:

{
  "name": "POLICY",
  "policyType": "BACKEND_SERVICE_POLICY",
  "healthyPercentThreshold": PERCENT_HEALTHY,
  "minHealthyThreshold": MINIMUM_HEALTHY
}

替换以下内容:

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

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

  • MINIMUM_HEALTHY:如要使健康状况来源被视为健康,后端服务中必须处于健康状态的端点的数量下限。

    默认值为 1

创建健康状况来源

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

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

控制台

  1. 在 Google Cloud 控制台中,前往 复合健康检查 页面:

    前往复合健康检查

  2. 点击健康状况来源

  3. 点击创建健康状况来源

  4. 输入健康状况来源的名称。

  5. 可选:输入健康状况来源的说明。

  6. 点击区域 ,然后为健康状况来源选择一个区域。

  7. 点击下一步

  8. 点击来源,然后选择要与 健康状况来源关联的后端服务。

  9. 点击下一步

  10. 点击健康状况汇总政策 ,然后选择要应用于此健康状况来源的健康状况 汇总政策。

  11. 点击创建

gcloud

使用 gcloud compute health-sources create 命令

gcloud 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:要应用于此健康状况来源的健康状况汇总政策的名称

API

regionHealthSources.insert 方法发送请求。

HTTP 方法和网址:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/healthSources

请求 JSON 正文:

{
  "name": "HEALTH_SOURCE",
  "sourceType": "BACKEND_SERVICE",
  "sources": [
    "projects/PROJECT_ID/regions/REGION/backendServices/BACKEND_SERVICE"
  ],
  "healthAggregationPolicy": "projects/PROJECT_ID/regions/REGION/healthAggregationPolicies/POLICY"
}

替换以下内容:

  • PROJECT_ID:健康状况来源的项目 ID。
  • REGION:健康状况来源的区域。

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

  • HEALTH_SOURCE:健康状况来源的名称。

  • BACKEND_SERVICE:要与健康状况来源关联的单个后端服务的名称。

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

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

创建复合健康检查

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

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

控制台

  1. 在 Google Cloud 控制台中,前往 复合健康检查 页面:

    前往复合健康检查

  2. 点击复合健康检查

  3. 点击创建复合健康检查

  4. 输入复合健康检查的名称。

  5. 可选:输入复合健康检查的说明。

  6. 点击区域 ,然后为复合健康 检查选择一个区域。

  7. 点击下一步

  8. 点击健康状况来源,然后选择要与复合健康检查关联 的健康状况来源。您可以点击添加健康状况来源 ,然后选择另一个健康状况来源,以添加更多健康状况来源。

  9. 点击下一步

  10. 点击负载平衡器类型 ,然后选择要用作健康状况目标的负载平衡器的类型。

  11. 点击负载均衡器,然后选择要用作健康状况目标的负载均衡器 。

  12. 如果您的负载均衡器与多个转发规则相关联, 请点击 转发规则,然后选择要用作健康状况目标的转发规则 。

  13. 点击创建

gcloud

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

gcloud 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

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

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

API

regionCompositeHealthChecks.insert 方法发送请求。

HTTP 方法和网址:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/compositeHealthChecks

请求 JSON 正文:

{
  "name": "COMPOSITE_HEALTH_CHECK",
  "healthSources": [
    "projects/PROJECT_ID/regions/REGION/healthSources/HEALTH_SOURCE"
  ],
  "healthDestination": "HEALTH_DESTINATION"
}

替换以下内容:

  • PROJECT_ID:复合健康检查的项目 ID。
  • REGION:复合健康检查的区域。
  • COMPOSITE_HEALTH_CHECK:复合健康检查的名称。
  • HEALTH_SOURCE:要与复合健康检查相关联的健康状况来源的名称。您可以在 healthSources 数组中添加多个健康状况来源。

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

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

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

后续步骤