設定複合健康狀態,以便自動執行跨區域容錯移轉

本頁面說明服務供應商如何設定複合健康狀態,支援已發布服務的自動跨區域容錯移轉。

事前準備

必要的角色

如要取得設定複合健康狀態所需的權限,請要求管理員授予您專案的Compute 網路管理員 (roles/compute.networkAdmin) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

這個預先定義的角色具備設定複合健康狀態所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:

所需權限

如要設定複合健康狀態檢查,您必須具備下列權限:

  • 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 後端時,這項功能才會運作。如要瞭解服務消費者如何設定虛擬私有雲網路來使用複合健康狀態檢查,請參閱自動跨區域容錯移轉

建立健康狀態匯總政策

在要支援跨區域容錯移轉的每個區域中,至少建立一項健康狀態匯總政策。

健康狀態匯總政策是可重複使用的資源,可定義後端服務的健康狀態判定條件。您可以將相同政策套用至多項後端服務,也可以為健康狀態需求不同的服務建立不同政策。

控制台

  1. 前往 Google Cloud 控制台的「Composite Health」(綜合健康狀態) 頁面:

    前往「複合健康狀態」

  2. 按一下「健康狀態匯總政策」

  3. 按一下「建立健康狀態匯總政策」

  4. 輸入健康狀態匯總政策的名稱。

  5. 選用:輸入政策說明。

  6. 按一下「區域」,然後選取健康狀態匯總政策的適用區域。

  7. 點選「下一步」

  8. 在「健康狀態百分比門檻」方塊中,輸入後端服務中健康狀態良好的端點必須達到的最低百分比,健康狀態來源才能視為健康狀態良好,例如 75

  9. 在「健康狀態良好最低門檻」方塊中,輸入後端服務中健康狀態良好的端點數量下限,健康狀態來源必須達到這個數量,才能視為健康狀態良好。

  10. 點選「建立」

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。端點可以是執行個體群組中的 VM,也可以是網路端點群組 (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。端點可以是執行個體群組中的 VM,也可以是網路端點群組 (NEG) 中的網路端點。

  • MINIMUM_HEALTHY:後端服務中,健康狀態良好的端點必須達到這個數量下限,健康狀態來源才能視為健康狀態良好。

    預設為 1

建立健康狀態來源

為已發布服務的每個區域執行個體建立健康狀態來源。 如果已發布服務的執行個體取決於多個後端服務的健康狀態,請為每個後端服務建立個別的健康狀態來源。

健康狀態來源是將健康狀態匯總政策連結至特定後端服務的資源。複合型健康狀態檢查會匯總一或多個健康狀態來源的健康狀態,產生服務的最終複合健康狀態。

控制台

  1. 前往 Google Cloud 控制台的「Composite Health」(綜合健康狀態) 頁面:

    前往「複合健康狀態」

  2. 按一下「健康資料來源」

  3. 按一下「建立健康資料來源」

  4. 輸入健康資料來源的名稱。

  5. 選用:輸入健康資料來源的說明。

  6. 按一下「地區」,然後選取健康資料來源的地區。

  7. 點選「下一步」

  8. 按一下「來源」,然後選取要與健康狀態來源建立關聯的後端服務。

  9. 點選「下一步」

  10. 按一下「健康狀態匯總政策」,然後選取要套用至這個健康狀態來源的健康狀態匯總政策。

  11. 點選「建立」

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:要與健康狀態來源建立關聯的單一後端服務名稱

    後端服務必須符合下列規定:

    • 負載平衡架構必須為 INTERNALINTERNAL_MANAGED
    • 必須與您建立的健康狀態來源位於相同區域。
    • 後端必須是 GCE_VM_IPGCE_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:要與健康狀態來源建立關聯的單一後端服務名稱。

    後端服務必須符合下列規定:

    • 負載平衡架構必須為 INTERNALINTERNAL_MANAGED
    • 必須與您建立的健康狀態來源位於相同區域。
    • 後端必須是 GCE_VM_IPGCE_VM_IP_PORT 類型的執行個體群組或網路端點群組。
  • POLICY:要套用至這個健康狀態來源的健康狀態匯總政策名稱。

建立複合型健康狀態檢查

為已發布服務的每個區域執行個體建立複合型健康狀態檢查。

複合型健康狀態檢查會匯總相關聯健康狀態來源的健康狀態,建立最終的複合型健康狀態。最終健康狀態會套用至與轉送規則相關聯的區域發布服務,而您會將轉送規則指定為健康狀態目的地。

控制台

  1. 前往 Google Cloud 控制台的「Composite Health」(綜合健康狀態) 頁面:

    前往「複合健康狀態」

  2. 按一下「複合型健康狀態檢查」

  3. 按一下「建立複合型健康狀態檢查」

  4. 輸入複合型健康狀態檢查的名稱。

  5. 選用:輸入複合健康狀態檢查的說明。

  6. 點選「區域」,然後選取複合健康檢查的區域。

  7. 點選「下一步」

  8. 按一下「健康狀態來源」,然後選取要與複合健康狀態檢查建立關聯的健康狀態來源。如要新增更多健康狀態來源,請按一下「新增健康狀態來源」,然後選取其他健康狀態來源。

  9. 點選「下一步」

  10. 按一下「負載平衡器類型」,然後選取要用做健康狀態檢查目的地的負載平衡器類型。

  11. 按一下「負載平衡器」,然後選取要用做健康狀態檢查目的地的負載平衡器。

  12. 如果負載平衡器與多個轉送規則相關聯,請按一下「轉送規則」,然後選取要用做健康狀態目的地的轉送規則。

  13. 點選「建立」

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

    轉送規則必須與支援複合健康狀態的生產者負載平衡器建立關聯,並符合下列規定:

    • 負載平衡架構必須為 INTERNALINTERNAL_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

    轉送規則必須與支援複合健康狀態的生產者負載平衡器建立關聯,並符合下列規定:

    • 負載平衡架構必須為 INTERNALINTERNAL_MANAGED
    • 必須與複合健康檢查位於相同區域。

後續步驟