配置复合健康检查以实现自动跨区域故障切换
本页介绍服务提供方如何配置复合健康检查,以支持已发布服务的自动跨区域故障切换。
准备工作
了解复合健康检查。
在您要支持的每个区域中,确定或创建满足以下要求的 目标服务 。
- 它必须使用以下内部负载平衡器之一:
- 它必须使用以下后端类型之一:
创建目标服务的步骤取决于您选择的负载均衡器和后端类型。如需了解如何创建目标服务,请参阅负载均衡器的文档。
通过创建服务连接来发布每个目标服务。
了解要使用复合健康检查进行故障切换, 使用方必须使用 支持跨区域故障切换的负载平衡器访问您的服务。
所需的角色
如需获得配置复合健康检查所需的权限,请让您的管理员为您授予项目的 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 网络以使用复合健康检查, 请参阅 自动跨区域故障切换。
创建健康状况汇总政策
在您要支持跨区域故障切换的每个区域中,至少创建一个健康状况汇总政策。
健康状况汇总政策是一种可重复使用的资源,用于定义后端服务被视为健康状况良好的标准。您可以对多个后端服务应用同一政策,也可以为具有不同健康状况要求的服务创建不同的政策。
控制台
在 Google Cloud 控制台中,前往 复合健康检查 页面:
点击健康状况汇总政策 。
点击创建健康状况汇总政策 。
输入健康状况汇总政策的名称。
可选:输入政策说明。
点击区域 ,然后为健康状况汇总 政策选择一个区域。
点击下一步 。
在健康状况百分比阈值 框中,输入如要使健康状况来源被视为健康,后端服务中必须处于健康状态的端点的最低百分比,例如
75。在最低健康状况阈值 框中,输入如要使健康状况来源被视为健康,后端服务中必须处于健康状态的端点的数量下限。
点击创建 。
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。
创建健康状况来源
为已发布服务的每个区域级实例创建健康状况来源。 如果已发布的服务实例依赖于多个后端服务的健康状况,请为每个后端服务创建单独的健康状况来源。
健康状况来源是将健康状况汇总政策与特定后端服务相关联的资源。复合健康检查会汇总一个或多个健康状况来源的健康状态,以生成服务的最终复合健康状态。
控制台
在 Google Cloud 控制台中,前往 复合健康检查 页面:
点击健康状况来源 。
点击创建健康状况来源 。
输入健康状况来源的名称。
可选:输入健康状况来源的说明。
点击区域 ,然后为健康状况来源选择一个区域。
点击下一步 。
点击来源,然后选择要与 健康状况来源关联的后端服务。
点击下一步 。
点击健康状况汇总政策 ,然后选择要应用于此健康状况来源的健康状况 汇总政策。
点击创建 。
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:要与健康状况来源关联的单个后端服务的名称后端服务必须满足以下要求:
- 它必须具有
INTERNAL或INTERNAL_MANAGED负载均衡方案。 - 它必须与您要创建的健康状况来源位于同一区域。
- 其后端必须是实例组或
类型为
GCE_VM_IP或GCE_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:要与健康状况来源关联的单个后端服务的名称。后端服务必须满足以下要求:
- 它必须具有
INTERNAL或INTERNAL_MANAGED负载均衡方案。 - 它必须与您要创建的健康状况来源位于同一区域。
- 其后端必须是实例组或
类型为
GCE_VM_IP或GCE_VM_IP_PORT的网络端点组。
- 它必须具有
POLICY:要应用于此健康状况来源的健康状况汇总政策的名称。
创建复合健康检查
为已发布服务的每个区域级实例创建复合健康检查。
复合健康检查会汇总其关联的健康状况来源的健康状态,从而创建最终的复合健康状态。最终健康状态会应用于与您指定为健康状况目标的转发规则相关联的区域级已发布服务。
控制台
在 Google Cloud 控制台中,前往 复合健康检查 页面:
点击复合健康检查 。
点击创建复合健康检查 。
输入复合健康检查的名称。
可选:输入复合健康检查的说明。
点击区域 ,然后为复合健康 检查选择一个区域。
点击下一步 。
点击健康状况来源,然后选择要与复合健康检查关联 的健康状况来源。您可以点击添加健康状况来源 ,然后选择另一个健康状况来源,以添加更多健康状况来源。
点击下一步 。
点击负载平衡器类型 ,然后选择要用作健康状况目标的负载平衡器的类型。
点击负载均衡器,然后选择要用作健康状况目标的负载均衡器 。
如果您的负载均衡器与多个转发规则相关联, 请点击 转发规则,然后选择要用作健康状况目标的转发规则 。
点击创建 。
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转发规则必须与支持复合健康检查且满足以下 要求的提供方负载均衡器 相关联:
- 它必须具有
INTERNAL或INTERNAL_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转发规则必须与支持复合健康检查且满足以下 要求的提供方负载均衡器 相关联:
- 它必须具有
INTERNAL或INTERNAL_MANAGED负载均衡方案。 - 它必须与复合健康检查位于同一区域。
- 它必须具有
后续步骤
- 如需使用复合健康检查监控已发布的服务,请参阅 监控复合健康检查。
- 如需管理复合健康检查配置,请参阅 查看、更新和删除复合健康检查配置。