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


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

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

事前準備

  • 請參閱 自動配置器的基礎知識。
  • 如果尚未設定,請先設定驗證機制。驗證是指驗證身分,以便存取 Google Cloud 服務和 API 的程序。如要在本機開發環境中執行程式碼或範例,您可以選取下列任一選項,向 Compute Engine 進行驗證:

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

    Console

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

    gcloud

    1. After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    2. Set a default region and zone.

    REST

    To use the REST API samples on this page in a local development environment, you use the credentials you provide to the gcloud CLI.

      After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    For more information, see Authenticate for using REST in the Google Cloud authentication documentation.

自動配置器如何處理多個信號

自動配置器處理多個信號的方法如下:為每個信號計算建議的 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 點起,至少有 6 部虛擬機運作 24 小時
    • 每週一至週五上午 9:00 開始,至少 15 部虛擬機,持續 8 小時

在這個範例中,假設自動配置器為含有 10 個 VM 的 MIG 測量所得到的平均使用率值如下:

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

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

  • 根據 CPU 使用率,為 7 個 VM
  • 7 部 VM (根據負載平衡使用率)
  • 根據指標 1 的 11 個 VM
  • 根據指標 2,為 14 個 VM
  • 根據第一個調整時程,每週六和週日全天使用 6 部虛擬機
  • 根據第二個調整大小排程,每週一至週五上午 9 點到下午 5 點有 15 部虛擬機

自動配置器會挑選會在 MIG 中產生最多 VM 的信號,並將 MIG 的建議大小設為該值。在這種情況下,如果目前是第二個時間表生效,自動調整器會將 MIG 的大小調整為 15 個 VM,否則則會調整為 14 個 VM。

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

視您使用的 Google Cloud 控制台、gcloud 指令列介面或 REST 為何,具有多個信號的自動配置器建立程序會略有差異。

主控台

  1. 前往 Google 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 的 VM 數量上限。無論這個 MIG 的自動調度資源信號為何,一律不得超過其大小上限。

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

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

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

  9. 在「Initialization period」下方,輸入應用程式需要初始化的秒數,讓 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。詳情請參閱「自訂指標」。

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

如要進一步瞭解如何為各類型的自動調整大小信號設定欄位,請參閱下列頁面: