本頁面適用於 Apigee,但不適用於 Apigee Hybrid。
查看
Apigee Edge 說明文件。
本文件說明如何使用 Apigee 設定主動健康狀態檢查,以便使用 Private Service Connect (PSC) 進行北向網路路由 (從用戶端傳送至 Apigee 的流量)。主動式健康狀態檢查可在發生區域性故障時,避免網路流量遺失。
總覽
如果您打算使用 PSC 為 Apigee 的北向網路路由設定,請按照本文件中的操作說明設定有效的健康狀態檢查。PSC 目前不支援主動健康狀態檢查監控功能,但您可以修改 Apigee 設定,使用可提供主動健康狀態檢查功能的代管執行個體群組 (MIG)。
您可以使用異常值偵測功能監控健康狀態;不過,在區域性故障期間,您可能會定期流失部分流量,因為異常值偵測功能會使用即時流量做為指標。異常情況偵測會定期重新路由部分即時流量,以便檢查失敗區域的健康狀況。
圖 1 顯示建議的架構。服務端點會連線至 Apigee 執行個體中的服務附件,而 MIG 會將流量代理至服務端點。您在 MIG 上啟用健康狀態檢查監控功能。
以 MIG 為準的健康狀態檢查方法
必要條件
您可以將本文所述的技術套用至使用或不使用 VPC 對等互連的 Apigee 安裝作業。不過,如果是 VPC 對等安裝作業,則只有在您使用 PSC 進行路由設定時,才適用本文所述的有效健康檢查技術。
執行本節中的步驟前,請先完成下列事項:
- 非虛擬私有雲對等互連安裝:
- 針對使用 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,且磁碟空間為 20 GB。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 Proxy 建立關聯。
您可以使用下列方式建立憑證:
- 您自行從憑證授權單位取得的憑證
- 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
您將使用這項健康狀態檢查,確保後端服務正在執行。如要針對特定 Proxy 設定更進階的健康狀態檢查,請參閱「執行健康狀態檢查」一文。
- 建立後端服務:
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 Proxy:
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 佈建程序已完成。請參閱「部署範例 Proxy」一文。