配置 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 健康状况配置。