建立含有多項信號的自動調度資源政策時,自動配置器會根據信號,在代管執行個體群組 (MIG) 中提供最多虛擬機器 (VM) 執行個體。這可確保有足夠的 VM 來處理應用程式工作負載,並讓您擴充應用程式,解決多個可能的瓶頸。
如要進一步瞭解不同類型的自動調度資源信號,請參閱「自動調度資源政策」。
事前準備
- 請參閱 基本概念,瞭解自動調度程式。
-
如果尚未設定驗證,請先完成設定。
驗證可確認您的身分,以便存取 Google Cloud 服務和 API。如要從本機開發環境執行程式碼或範例,請選取下列其中一個選項,向 Compute Engine 進行驗證:
選取這個頁面上範例的預計用途分頁:
控制台
使用 Google Cloud 控制台存取 Google Cloud 服務和 API 時,不需要設定驗證。
gcloud
-
安裝 Google Cloud CLI。 完成後,執行下列指令來初始化 Google Cloud CLI:
gcloud init如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
-
- 設定預設區域和可用區。
REST
如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。
安裝 Google Cloud CLI。
如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
詳情請參閱 Google Cloud 驗證說明文件中的「使用 REST 進行驗證」。
自動調度器如何處理多個信號
自動調度器會計算每個信號建議的 VM 數量,然後選取可讓 MIG 中 VM 數量達到上限的信號,藉此處理多個信號。
自動調度器可處理每個指標類型的一項信號,但 Cloud Monitoring 指標和調度排程除外。您可以為 Cloud Monitoring 指標選擇最多 5 個自動調度資源信號,並為每個 MIG 建立最多 128 個排程。舉例來說,您可以建立自動調度器,最多使用 1 個 CPU 使用率信號、1 個負載平衡信號、5 個自訂指標信號,以及 128 個調度排程。
舉例來說,您可以定義自動調整程式,並使用下列所有信號:
cpuUtilization,目標為 0.8loadBalancingUtilization,目標為 0.6customMetricUtilization(目標為 1000)customMetricUtilization(目標為 2000)scalingSchedules- 每週六和週日凌晨 12 點起,至少 24 小時內有 6 個 VM
- 每週一至週五上午 9 點,至少要有 15 部 VM 執行 8 小時
在本範例中,假設自動調度器在測量時,測得含有 10 部 VM 的 MIG 平均使用率值如下:
- CPU 使用率為 0.5
- 0.4 負載平衡使用率
- 1100 (公制 1)
- 2700 (公制)2
自動調度器會根據每個信號,使用上述值計算建議的 VM 數量:
- 7 個 VM (依 CPU 使用率排序)
- 根據負載平衡使用率,7 部 VM
- 根據指標 1,有 11 個 VM
- 根據指標 2 調整為 14 個 VM
- 根據第一個縮放排程,每週六和週日全天使用 6 部 VM
- 根據第二個縮放時間表,每週一至週五上午 9 點到下午 5 點有 15 部 VM
自動調度器會選取可讓 MIG 產生最多 VM 的信號,並將 MIG 的建議大小設為該值。在這種情況下,如果第二個排程目前處於啟用狀態,自動調度器會將 MIG 大小調整為 15 個 VM,否則會調整為 14 個 VM。
建立具有多個信號的自動配置器
使用多個信號建立自動調整程式時,做法會略有不同,視您使用的是 Google Cloud 控制台、gcloud CLI 或 REST 而定。
控制台
前往 Google Cloud 控制台的「Instance groups」(執行個體群組) 頁面。
在清單中按一下 MIG 名稱。
按一下 [編輯]。
按一下「群組大小和自動調度」展開該部分。
在「Autoscaling mode」(自動調度資源模式) 清單中,確認已選取「On: add and remove instances to the group」(開啟:在群組中新增和移除執行個體)。
在「Minimum number of instances」(執行個體數量下限) 欄位中,輸入這個 MIG 的 VM 數量下限。無論這個 MIG 的自動調度資源信號為何,系統一律會保留其大小下限。
在「Maximum number of instances」(執行個體數量上限) 欄位中,輸入這個 MIG 的 VM 數量上限。無論這個 MIG 的自動調度資源信號建議的大小為何,一律不得超過其大小上限。
如要新增每個以指標為準的自動調度資源信號,請按一下「新增信號」。
- 如要根據平均 CPU 使用率建立自動調度資源信號,請在「信號類型」清單中選取「CPU 使用率」。然後輸入「目標 CPU 使用率」,並點選「完成」。詳情請參閱「根據 CPU 使用率調度資源」。
- 如要根據 HTTP 負載平衡服務容量建立自動調度資源信號,請在「信號類型」清單中選取「HTTP 負載平衡使用率」。然後輸入「目標 HTTP 負載平衡使用率」,並按一下「完成」。詳情請參閱「根據負載平衡服務規模調度資源」。
- 如要根據 Cloud Monitoring 指標建立自動調度資源信號,請在「信號類型」清單中選取「Cloud Monitoring 指標」。然後填寫其餘欄位,並按一下「完成」。詳情請參閱「依據 Cloud Monitoring 指標調度資源」。
如要新增以時間表為準的自動調度資源信號,請在「自動調度資源時間表」部分點選「管理」。
按一下「建立排程」。
在「建立縮放時間表」窗格中,填寫必填欄位,然後按一下「儲存」。
在「縮放時間表」窗格中,按一下「完成」。
詳情請參閱「根據時間表調整規模」。
在「Initialization period」(初始化期間) 部分,輸入應用程式初始化所需的秒數。這段期間可讓 VM 完成初始化,自動調度器才會將 VM 的使用資料視為可靠。詳情請參閱「初始化期間」。
選用:如要啟用向內縮減控制項,請在「Scale-in controls」(向內縮減控制項) 部分,選取「Enable scale-in controls」(啟用向內縮減控制項) 核取方塊。詳情請參閱「縮減控制項」。
按一下 [儲存]。
gcloud
如要建立具有多個信號的自動調整規模器,請使用 set-autoscaling 指令。使用各自的指令列標記傳遞多個信號規格。
舉例來說,下列指令會建立自動調度器,使用 CPU 使用率、負載平衡供應運算資源、兩個自訂指標和一個調度資源排程。--max-num-replicas 和 --min-num-replicas 旗標會限制 MIG 的大小。
gcloud compute instance-groups managed set-autoscaling MIG_NAME \ --target-cpu-utilization=0.8 \ --target-load-balancing-utilization=0.6 \ --custom-metric-utilization metric=PATH_TO_CUSTOM_METRIC_1,utilization-target=1000.0,utilization-target-type=GAUGE \ --custom-metric-utilization metric=PATH_TO_CUSTOM_METRIC_2,utilization-target=2000.0,utilization-target-type=DELTA_PER_SECOND \ --set-schedule=workday-capacity \ --schedule-cron="30 8 * * Mon-Fri" \ --schedule-duration-sec=30600 \ --schedule-min-required-replicas=10 \ --schedule-description="Have at least 10 VMs every Monday through Friday from 8:30 AM to 5 PM UTC" \ --min-num-replicas=1 \ --max-num-replicas=50
更改下列內容:
MIG_NAME:MIG 的名稱。PATH_TO_CUSTOM_METRIC_1和PATH_TO_CUSTOM_METRIC_2:選用:自訂指標的路徑,格式類似於custom.cloudmonitoring.googleapis.com/path/to/metric1和custom.cloudmonitoring.googleapis.com/path/to/metric2。詳情請參閱「自訂指標」。
除了自訂指標旗標外,每個 gcloud 指令的每種指標類型最多只能傳遞一個旗標。如果是自訂指標,您可以重複 --custom-metric-utilization 旗標,在單一指令中提供多個自訂指標。
如要進一步瞭解如何為各類自動調整規模訊號設定旗標,請參閱下列頁面:
REST
如要建立自動調度器,請使用可用區 MIG 的 autoscalers.insert 方法,或是區域性 MIG 的 regionAutoscalers.insert 方法。
舉例來說,下列要求會建立自動調度器,使用 CPU 使用率、負載平衡供應運算資源、兩個自訂指標和兩個調度排程。maxNumReplicas 和 minNumReplicas 欄位會限制 MIG 的大小。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/autoscalers
{
"autoscalingPolicy" : {
"cpuUtilization":{
"utilizationTarget": 0.8
},
"loadBalancingUtilization":{
"utilizationTarget": 0.6
},
"customMetricUtilizations":[
{
"metric": "PATH_TO_CUSTOM_METRIC_1",
"utilizationTarget": 1000,
"utilizationTargetType":"GAUGE"
},
{
"metric": "PATH_TO_CUSTOM_METRIC_2",
"utilizationTarget": 2000,
"utilizationTargetType": "DELTA_PER_SECOND"
}
],
"scalingSchedules": {
"workday-capacity": {
"minRequiredReplicas": 10,
"schedule": "30 8 * * Mon-Fri",
"durationSec": 30600,
"description": "Have at least 10 VMs every Monday through Friday from 8:30 AM to 5 PM UTC"
},
"january-30-2030-schedule": {
"minRequiredReplicas": 30,
"schedule": "0 0 30 1 * 2030",
"timeZone": "America/New_York",
"durationSec": 86400,
"description": "Schedule a minimum of 30 VMs all day for January 30, 2030"
}
},
"maxNumReplicas": 50,
"minNumReplicas": 1
},
"target": "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instanceGroupManagers/MIG_NAME",
"name": "MIG_NAME"
}更改下列內容:
PROJECT:您的專案 ID。ZONE:MIG 所在的可用區。MIG_NAME:MIG 的名稱。PATH_TO_CUSTOM_METRIC_1和PATH_TO_CUSTOM_METRIC_2:選用:自訂指標的路徑,格式類似於custom.cloudmonitoring.googleapis.com/path/to/metric1和custom.cloudmonitoring.googleapis.com/path/to/metric2。詳情請參閱「自訂指標」。
如本例所示,您可以在同一項要求中提供多個自訂指標和縮放排程。
如要進一步瞭解如何為各類自動調整比例信號設定欄位,請參閱下列頁面: