配置 Private Service Connect 健康状况以实现自动跨区域故障切换
本页面介绍了服务提供方如何配置已发布的服务,以通过 Private Service Connect 健康状况支持自动跨区域故障切换。
准备工作
在您要支持的每个区域中,创建一个满足以下要求的目标服务。
- 它必须使用以下内部负载均衡器之一:
- 它必须使用以下后端类型之一:
- 网络端点类型为
GCE_VM_IP或GCE_VM_IP_PORT的可用区级网络端点组 (NEG) - 实例组
- 网络端点类型为
创建目标服务的步骤取决于您选择的负载均衡器和后端类型。如需了解如何创建目标服务,请参阅负载均衡器的文档。
通过创建服务连接来发布每个目标服务。
请注意,如需使用 Private Service Connect 健康状况,使用方必须通过支持跨区域故障切换的负载均衡器访问您的服务。
在项目中启用 Compute Engine API。
所需的角色
如需获得配置 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:要用作健康状况来源的单个后端服务的名称后端服务必须满足以下要求:
- 它必须具有
INTERNAL或INTERNAL_MANAGED负载均衡方案。 - 它必须与您要创建的健康状况来源位于同一区域。
- 其后端必须是类型为
GCE_VM_IP或GCE_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 健康状况且满足以下要求的提供方负载均衡器相关联:
- 它必须具有
INTERNAL或INTERNAL_MANAGED负载均衡方案。 - 必须与复合健康检查位于同一区域。
- 它必须具有
后续步骤
- 如需管理 Private Service Connect 健康状况配置,请参阅查看、更新和删除 Private Service Connect 健康状况配置。