本页面适用于 Apigee,但不适用于 Apigee Hybrid。
查看 Apigee Edge 文档。
本文档介绍了在您使用 Private Service Connect (PSC) 进行北向网络路由(从客户端到 Apigee 的流量)时,如何使用 Apigee 配置主动健康检查。主动健康检查有助于防止在发生区域级故障时丢失网络流量。
概览
如果您计划将 PSC 用于 Apigee 北向网络路由,请按照本文档中的说明配置主动健康检查。目前,PSC 不支持主动健康检查监控,但您可以修改 Apigee 配置以使用托管式实例组 (MIG),该实例组可以提供主动健康检查功能。
您可以使用离群点检测实现健康监控;不过,在发生区域级故障期间,您可能会定期丢失一些流量,因为离群点检测会使用实时流量作为指标。离群点检测会定期重新路由部分实时流量,以检查故障区域的健康状况。
图 1 显示了建议的架构。服务端点连接到 Apigee 实例中的服务连接,MIG 将流量代理到服务端点。您可以在 MIG 上启用健康检查监控。
基于 MIG 的健康检查方法
前提条件
您可以将本文档中介绍的方法应用于 Apigee 安装,无论它们是否使用 VPC 对等互连。但是,对于 VPC 对等互连安装,仅当您将 PSC 用于路由配置时,此处介绍的主动健康检查技术才适用。
在执行本部分中的步骤之前,请先完成以下操作:
- 对于非 VPC 对等互连安装:
- 对于使用 PSC 进行路由的 VPC 对等互连安装:
1. 为 Apigee 服务连接配置 PSC 服务端点
在此步骤中,您将创建一个 PSC 服务端点,其指向 Apigee 实例中的服务连接:
- 从先前创建的 Apigee 实例获取服务连接:
curl -i -X GET -H "Authorization: Bearer $AUTH" \ "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances"
在以下示例输出中,
serviceAttachment
值以粗体显示:{ "instances": [ { "name": "us-west1", "location": "us-west1", "host": "10.82.192.2", "port": "443", "createdAt": "1645731488019", "lastModifiedAt": "1646504754219", "diskEncryptionKeyName": "projects/my-project/locations/us-west1/keyRings/us-west1/cryptoKeys/dek", "state": "ACTIVE", "peeringCidrRange": "SLASH_22", "runtimeVersion": "1-7-0-20220228-190814", "ipRange": "10.82.192.0/22,10.82.196.0/28", "consumerAcceptList": [ "875609189304" ], "serviceAttachment": "projects/bfac74a67a320c43a12p-tp/regions/us-west1/serviceAttachments/apigee-us-west1-crw1" } ] }
- 创建一个 PSC 服务端点并指向您在上一步中从实例响应正文获取的服务连接,如创建 Private Service Connect 端点中所述。
2. 配置指向服务端点的 MIG
在此步骤中,您将创建一个 MIG,用于将流量代理到服务端点。然后,您可以在 MIG 上启用主动健康检查。
2A. 为您的 VPC 网络的子网启用专用 Google 访问通道
如需为您的 VPC 网络的子网启用专用 Google 访问通道,请按照启用专用 Google 访问通道中列出的步骤操作。
2B. 设置环境变量
本部分中的说明使用环境变量来引用重复使用的字符串。我们建议您先进行以下设置,然后再继续:
MIG_NAME=YOUR_MIG_NAME # A name you provide for the MIGVPC_NAME=default # If you are using a shared VPC, use the shared VPC name
VPC_SUBNET=default # Private Google Access must be enabled for this subnet
REGION=RUNTIME_REGION # The same region as your Apigee runtime instance
SERVICE_ENDPOINT_IP=YOUR_SERVICE_ENDPOINT_IP. ## The endpoint IP of the service endpoint you just created
在剩余的流程中,您将多次使用这些变量。如果要配置多个区域,请创建特定于每个区域的变量。
2C. 创建代管式实例组
在此步骤中,您将创建并配置代管式实例组 (MIG)。
- 通过执行以下命令来创建实例模板。
gcloud compute instance-templates create $MIG_NAME \ --project $PROJECT_ID \ --region $REGION \ --network $VPC_NAME \ --subnet $VPC_SUBNET \ --tags=https-server,apigee-mig-proxy,gke-apigee-proxy \ --machine-type e2-medium --image-family debian-12 \ --image-project debian-cloud --boot-disk-size 20GB \ --no-address \ --metadata ENDPOINT=$SERVICE_ENDPOINT_IP,startup-script-url=gs://apigee-5g-saas/apigee-envoy-proxy-release/latest/conf/startup-script.sh
正如您在此命令中看到的那样,机器的类型为
e2-medium
。它们运行 Debian 12 并具有 20GB 磁盘。startup-script.sh
脚本会将 MIG 配置为将来自负载均衡器的入站流量路由到 Apigee 实例。 - 通过执行以下命令来创建代管式实例组:
gcloud compute instance-groups managed create $MIG_NAME \ --project $PROJECT_ID --base-instance-name apigee-mig \ --size 2 --template $MIG_NAME --region $REGION
- 通过执行以下命令为实例组配置自动扩缩:
gcloud compute instance-groups managed set-autoscaling $MIG_NAME \ --project $PROJECT_ID --region $REGION --max-num-replicas 3 \ --target-cpu-utilization 0.75 --cool-down-period 90
- 通过执行以下命令来定义已命名端口:
gcloud compute instance-groups managed set-named-ports $MIG_NAME \ --project $PROJECT_ID --region $REGION --named-ports https:443
3. 使用健康检查监控功能配置负载均衡器
在以下步骤中,您将使用健康检查监控功能配置负载均衡器。
3A. 为负载均衡器创建 SSL 证书和密钥
无论您是在单区域还是在多区域中进行安装,都只需创建一次凭据。在稍后的步骤中,您会将这些凭据与负载均衡器的目标 HTTPS 代理相关联。
您可以使用以下命令创建凭据:
- 您自己的证书授权机构颁发的证书
- Google 代管式 SSL 证书
- 自签名证书(不建议用于生产)。
如需详细了解如何为 Google Cloud 负载均衡器创建和使用 SSL 证书,请参阅 SSL 证书和 SSL 证书概览。
在以下示例中,我们创建了一个 Google 代管式 SSL 证书:
- 创建以下环境变量:
CERTIFICATE_NAME=YOUR_CERT_NAME
DOMAIN_HOSTNAME=YOUR_DOMAIN_HOSTNAME
将
DOMAIN_HOSTNAME
设置为您注册的有效网域主机名。在稍后的步骤中,您将获取负载均衡器的 IP 地址,并将网域 A 记录更新为指向该地址。例如,网域主机名可能如下所示:foo.example.com
。 - 执行 gcloud compute ssl-certificates create 命令:
gcloud compute ssl-certificates create $CERTIFICATE_NAME \ --domains=$DOMAIN_HOSTNAME \ --project $PROJECT_ID \ --global
证书最多可能需要一个小时才能完成预配。如需检查预配的状态,请执行以下命令:
gcloud compute ssl-certificates describe $CERTIFICATE_NAME \ --global \ --format="get(name,managed.status, managed.Status)"
3B. 创建健康检查
- 创建健康检查:
gcloud compute health-checks create https HEALTH_CHECK_NAME \ --project $PROJECT_ID --port 443 --global \ --request-path /healthz/ingress
您将使用此健康检查来确保后端服务正在运行。如需了解如何针对特定代理配置更高级的健康检查,请参阅执行健康检查。
- 创建后端服务:
gcloud compute backend-services create PROXY_BACKEND_NAME \ --project $PROJECT_ID \ --protocol HTTPS \ --health-checks HEALTH_CHECK_NAME \ --port-name https \ --timeout 302s \ --connection-draining-timeout 300s \ --global
- 使用以下命令将 MIG 添加到后端服务:
gcloud compute backend-services add-backend PROXY_BACKEND_NAME \ --project $PROJECT_ID --instance-group $MIG_NAME \ --instance-group-region $REGION \ --balancing-mode UTILIZATION --max-utilization 0.8 --global
- 使用以下命令创建负载均衡网址映射:
gcloud compute url-maps create MIG_PROXY_MAP_NAME \ --project $PROJECT_ID --default-service PROXY_BACKEND_NAME
- 使用以下命令创建负载均衡目标 HTTPS 代理:
gcloud compute target-https-proxies create MIG_HTTPS_PROXY_NAME \ --project $PROJECT_ID --url-map MIG_PROXY_MAP_NAME \ --ssl-certificates $CERTIFICATE_NAME
3C. 获取预留 IP 地址并创建防火墙规则
您必须为负载均衡器分配 IP 地址,然后创建允许负载均衡器访问 MIG 的规则。 无论您是在单区域还是多区域安装,此步骤只需执行一次。
- 为负载均衡器预留 IP 地址:
gcloud compute addresses create ADDRESSES_NAME \ --project $PROJECT_ID \ --ip-version=IPV4 \ --global
- 使用以下命令创建全局转发规则:
gcloud compute forwarding-rules create FORWARDING_RULE_NAME \ --project $PROJECT_ID --address ADDRESSES_NAME --global \ --target-https-proxy MIG_HTTPS_PROXY_NAME --ports 443
- 通过执行以下命令来获取预留 IP 地址:
gcloud compute addresses describe ADDRESSES_NAME \ --project $PROJECT_ID --format="get(address)" --global
- 重要步骤:转到您的 DNS 记录管理所管理的网站、DNS 主机或 ISP,确保您的网域的 DNS 记录解析为 Google Cloud 负载均衡器的 IP 地址。此地址是上一步中返回的 IP 值。如需了解详情,请参阅更新 DNS A 和 AAAA 记录以指向负载均衡器的 IP 地址。
- 使用以下命令创建一条防火墙规则,允许负载均衡器访问 MIG:
gcloud compute firewall-rules create FIREWALL_RULE_NAME \ --description "Allow incoming from GLB on TCP port 443 to Apigee Proxy" \ --project $PROJECT_ID --network $VPC_NAME --allow=tcp:443 \ --source-ranges=130.211.0.0/22,35.191.0.0/16 --target-tags=gke-apigee-proxy
请注意,IP 地址范围
130.211.0.0/22
和35.191.0.0/16
是 Google 负载均衡的源 IP 地址范围。此防火墙规则允许 Google Cloud Load Balancing 向 MIG 发出健康检查请求。
Apigee 预配完成。转到部署示例代理。