使用含有多項信號的自動調度資源政策

建立含有多項信號的自動調度資源政策時,自動配置器會根據信號調度資源,以在代管執行個體群組 (MIG) 中提供最多虛擬機器 (VM) 執行個體。這可確保隨時都有足夠的 VM 來處理您的應用程式工作負載,並能讓您針對多個潛在瓶頸調度應用程式資源。

如要進一步瞭解不同類型的自動調度資源信號,請參閱自動調度資源政策

事前準備

  • 瞭解自動調度器 基本概念
  • 如果尚未設定驗證,請先完成設定。 「驗證」是指驗證身分的程序,確認您有權存取 Trusted Cloud by S3NS 服務和 API。如要從本機開發環境執行程式碼或範例,請選取下列任一選項,向 Compute Engine 進行驗證:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Trusted Cloud console to access Trusted Cloud by S3NS services and APIs, you don't need to set up authentication.

    gcloud

    1. 安裝 Google Cloud CLI,然後 使用同盟身分登入 gcloud CLI。 登入後,執行下列指令初始化 Google Cloud CLI:

      gcloud init
    2. Set a default region and zone.

    REST

    如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。

      安裝 Google Cloud CLI,然後 使用同盟身分登入 gcloud CLI。 登入後,執行下列指令初始化 Google Cloud CLI:

      gcloud init

    詳情請參閱 Trusted Cloud 驗證說明文件中的「Authenticate for using REST」。

自動調度資源功能如何處理多項信號

自動調度器處理多個信號的方法如下:為每個信號計算建議的 VM 數量,然後挑選會讓 MIG 擁有最多 VM 的信號。

自動調度器可以為每一指標類型處理一項信號,但 Cloud Monitoring 指標和調度時間表例外。您可以為 Cloud Monitoring 指標選擇最多 5 個自動調度資源信號,並為每個 MIG 建立最多 128 個排程。例如,您可以建立一個自動調度器,最多使用 1 個 CPU 使用率信號、1 個負載平衡信號、5 個自訂指標信號,以及 128 個調度排程。

舉例來說,您可以定義具有以下所有信號的自動配置器:

  • cpuUtilization:目標為 0.8
  • loadBalancingUtilization:目標為 0.6
  • customMetricUtilization:針對指標 1,目標為 1000
  • customMetricUtilization:針對指標 2,目標為 2000
  • scalingSchedules
    • 每週六和週日凌晨 12 點起,至少 24 小時內有 6 部 VM
    • 週一至週五上午 9 點起,至少 15 部 VM 須運作 8 小時

在這個範例中,假設自動調度器在測量時,為含有 10 個 VM 的 MIG 測得的平均用量值如下:

  • CPU 使用率 0.5
  • 0.4 負載平衡使用率
  • 指標 1:1100
  • 指標 2:2700

自動配置器會使用上述值,根據每項信號計算建議的 VM 數量:

  • 根據 CPU 使用率,為 7 個 VM
  • 7 根據負載平衡使用率的 VM
  • 根據指標 1,為 11 個 VM
  • 根據指標 2,為 14 個虛擬機器。
  • 根據第一個縮放排程,每週六和週日全天使用 6 部 VM
  • 根據第二個縮放排程,每週一至週五上午 9:00 至下午 5:00 會有 15 部 VM

自動調度器會選取可讓 MIG 擁有最多 VM 的信號,並將 MIG 的建議大小設為該值。在這種情況下,如果第二個時間表目前處於啟用狀態,自動調整資源配置功能會將 MIG 大小調整為 15 部 VM,否則會調整為 14 部 VM。

建立具有多項信號的自動配置器

視您使用的 Trusted Cloud 控制台、gcloud CLI 或 REST 為何,具有多項信號的自動配置器建立程序會略有差異。

主控台

  1. 前往 Trusted Cloud 控制台的「Instance groups」(執行個體群組) 頁面。

    前往「Instance groups」(執行個體群組) 頁面

  2. 從清單中按一下 MIG 名稱。然後按一下「編輯」

  3. 在編輯頁面的「Autoscaling mode」(自動調度資源模式) 底下,從下拉式選單中選取「On: add and remove instances to the group」(開啟:在群組中新增和移除執行個體),即可開啟自動調度資源功能。

  4. 在「Minimum number of instances」(執行個體數量下限) 底下,輸入這個 MIG 的 VM 數量下限。無論這個 MIG 的自動調度資源信號為何,系統一律會保留其大小下限。

  5. 在「Maximum number of instances」(執行個體數量上限) 底下,輸入這個 MIG 的虛擬機器數量上限。無論這個 MIG 的自動調度資源信號產生的大小建議為何,一律不得超過其大小上限。

  6. 如要新增每個以指標為準的自動調度資源信號,請在「自動調度資源信號」下方點選「新增信號」

    • 如要根據平均 CPU 使用率建立自動調度資源信號,請在「信號類型」下方,從下拉式選單中選取「CPU 使用率」。然後輸入「目標 CPU 使用率」,並按一下「完成」。 詳情請參閱根據 CPU 使用率執行資源調度
    • 如要根據 HTTP 負載平衡服務規模建立自動調度信號,請在「信號類型」下方,從下拉式選單選取「HTTP 負載平衡使用率」。 然後輸入「目標 HTTP 負載平衡使用率」,並按一下「完成」。詳情請參閱根據負載平衡服務規模執行資源調度
    • 如要根據 Cloud Monitoring 指標建立自動調度資源信號,請在「信號類型」下方,從下拉式選單中選取「Cloud Monitoring 指標」。接著填寫剩餘欄位,然後按一下「完成」。詳情請參閱根據 Cloud Monitoring 指標執行資源調度
  7. 如要新增以時間表為準的自動調度資源信號,請展開「自動調度資源時間表」部分,按一下「管理時間表」,然後按一下「建立時間表」

  8. 在新的「建立縮放排程」窗格中,填寫必填欄位,然後按一下「儲存」。然後在「縮放時間表」窗格中,按一下「完成」。詳情請參閱根據時間表執行資源調度

  9. 在「初始化期間」下方,輸入應用程式初始化所需的秒數,讓 VM 完成初始化,自動調度器才會將使用率資料視為可靠。詳情請參閱「初始化期間」一節。

  10. 選用:如要啟用向內縮減控制項,請按一下「向內縮減控制項」,然後選取「啟用向內縮減控制項」核取方塊。詳情請參閱縮減控制項

  11. 按一下 [儲存]

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_1PATH_TO_CUSTOM_METRIC_2:選用:自訂指標的路徑,格式與 custom.cloudmonitoring.googleapis.com/path/to/metric1custom.cloudmonitoring.googleapis.com/path/to/metric2 類似。詳情請參閱「自訂指標」。

您可以利用自訂指標標記的例外設定,為每個指標類型最多傳遞一個標記 (每個 gcloud 指令)。針對自訂指標,只要重複 --custom-metric-utilization 標記,即可在單一指令中提供多項自訂指標。

如要進一步瞭解如何為各類自動調整規模訊號設定旗標,請參閱下列頁面:

REST

如要建立自動調整器,請使用區域 MIG 的 autoscalers.insert 方法,或區域 MIG 的 regionAutoscalers.insert 方法

舉例來說,下列要求會建立自動配置器,使用 CPU 使用率、負載平衡服務容量、兩項自訂指標和兩項資源調度時間表。maxNumReplicasminNumReplicas 欄位會限制 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_1PATH_TO_CUSTOM_METRIC_2:選用:自訂指標的路徑,格式與 custom.cloudmonitoring.googleapis.com/path/to/metric1custom.cloudmonitoring.googleapis.com/path/to/metric2 類似。詳情請參閱「自訂指標」。

如本例所示,您可以在同一個要求中提供多項自訂指標和縮放排程。

如要進一步瞭解如何為各類自動調度訊號設定欄位,請參閱下列頁面: