設定複合健康狀態,以便自動執行跨區域容錯移轉
本頁面說明服務供應商如何設定複合健康狀態,支援已發布服務的自動跨區域容錯移轉。
事前準備
請參閱複合健康狀態。
在您想支援的每個區域中,找出或建立符合下列規定的目標服務。
- 必須使用下列其中一個內部負載平衡器:
- 必須使用下列其中一種後端類型:
- 區域網路端點群組 (NEG),網路端點類型為
GCE_VM_IP或GCE_VM_IP_PORT - 執行個體群組
- 區域網路端點群組 (NEG),網路端點類型為
建立目標服務的步驟取決於您選擇的負載平衡器和後端類型。如要瞭解如何建立目標服務,請參閱負載平衡器的說明文件。
建立服務連結,發布各個目標服務。
瞭解如要使用複合健康狀態進行容錯移轉,消費者必須透過支援跨區域容錯移轉的負載平衡器存取服務。
在專案中啟用 Compute Engine API。
必要的角色
如要取得設定複合健康狀態所需的權限,請要求管理員授予您專案的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 後端時,這項功能才會運作。如要瞭解服務消費者如何設定虛擬私有雲網路來使用複合健康狀態檢查,請參閱自動跨區域容錯移轉。
建立健康狀態匯總政策
在要支援跨區域容錯移轉的每個區域中,至少建立一項健康狀態匯總政策。
健康狀態匯總政策是可重複使用的資源,可定義後端服務的健康狀態判定條件。您可以將相同政策套用至多項後端服務,也可以為健康狀態需求不同的服務建立不同政策。
控制台
前往 Google Cloud 控制台的「Composite Health」(綜合健康狀態) 頁面:
按一下「健康狀態匯總政策」。
按一下「建立健康狀態匯總政策」。
輸入健康狀態匯總政策的名稱。
選用:輸入政策說明。
按一下「區域」,然後選取健康狀態匯總政策的適用區域。
點選「下一步」。
在「健康狀態百分比門檻」方塊中,輸入後端服務中健康狀態良好的端點必須達到的最低百分比,健康狀態來源才能視為健康狀態良好,例如
75。在「健康狀態良好最低門檻」方塊中,輸入後端服務中健康狀態良好的端點數量下限,健康狀態來源必須達到這個數量,才能視為健康狀態良好。
點選「建立」。
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。
建立健康狀態來源
為已發布服務的每個區域執行個體建立健康狀態來源。 如果已發布服務的執行個體取決於多個後端服務的健康狀態,請為每個後端服務建立個別的健康狀態來源。
健康狀態來源是將健康狀態匯總政策連結至特定後端服務的資源。複合型健康狀態檢查會匯總一或多個健康狀態來源的健康狀態,產生服務的最終複合健康狀態。
控制台
前往 Google Cloud 控制台的「Composite Health」(綜合健康狀態) 頁面:
按一下「健康資料來源」。
按一下「建立健康資料來源」。
輸入健康資料來源的名稱。
選用:輸入健康資料來源的說明。
按一下「地區」,然後選取健康資料來源的地區。
點選「下一步」。
按一下「來源」,然後選取要與健康狀態來源建立關聯的後端服務。
點選「下一步」。
按一下「健康狀態匯總政策」,然後選取要套用至這個健康狀態來源的健康狀態匯總政策。
點選「建立」。
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:要與健康狀態來源建立關聯的單一後端服務名稱後端服務必須符合下列規定:
- 負載平衡架構必須為
INTERNAL或INTERNAL_MANAGED。 - 必須與您建立的健康狀態來源位於相同區域。
- 後端必須是
GCE_VM_IP或GCE_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:要與健康狀態來源建立關聯的單一後端服務名稱。後端服務必須符合下列規定:
- 負載平衡架構必須為
INTERNAL或INTERNAL_MANAGED。 - 必須與您建立的健康狀態來源位於相同區域。
- 後端必須是
GCE_VM_IP或GCE_VM_IP_PORT類型的執行個體群組或網路端點群組。
- 負載平衡架構必須為
POLICY:要套用至這個健康狀態來源的健康狀態匯總政策名稱。
建立複合型健康狀態檢查
為已發布服務的每個區域執行個體建立複合型健康狀態檢查。
複合型健康狀態檢查會匯總相關聯健康狀態來源的健康狀態,建立最終的複合型健康狀態。最終健康狀態會套用至與轉送規則相關聯的區域發布服務,而您會將轉送規則指定為健康狀態目的地。
控制台
前往 Google Cloud 控制台的「Composite Health」(綜合健康狀態) 頁面:
按一下「複合型健康狀態檢查」。
按一下「建立複合型健康狀態檢查」。
輸入複合型健康狀態檢查的名稱。
選用:輸入複合健康狀態檢查的說明。
點選「區域」,然後選取複合健康檢查的區域。
點選「下一步」。
按一下「健康狀態來源」,然後選取要與複合健康狀態檢查建立關聯的健康狀態來源。如要新增更多健康狀態來源,請按一下「新增健康狀態來源」,然後選取其他健康狀態來源。
點選「下一步」。
按一下「負載平衡器類型」,然後選取要用做健康狀態檢查目的地的負載平衡器類型。
按一下「負載平衡器」,然後選取要用做健康狀態檢查目的地的負載平衡器。
如果負載平衡器與多個轉送規則相關聯,請按一下「轉送規則」,然後選取要用做健康狀態目的地的轉送規則。
點選「建立」。
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轉送規則必須與支援複合健康狀態的生產者負載平衡器建立關聯,並符合下列規定:
- 負載平衡架構必須為
INTERNAL或INTERNAL_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轉送規則必須與支援複合健康狀態的生產者負載平衡器建立關聯,並符合下列規定:
- 負載平衡架構必須為
INTERNAL或INTERNAL_MANAGED。 - 必須與複合健康檢查位於相同區域。
- 負載平衡架構必須為
後續步驟
- 如要使用複合健康狀態監控已發布的服務,請參閱「監控複合健康狀態」。
- 如要管理複合健康設定,請參閱「查看、更新及刪除複合健康設定」。