公開負載平衡器的自訂指標

本節說明如何將一或多項指標從 Pod 或工作負載傳送至負載平衡器。

這些指標來自您執行的服務或應用程式。舉例來說,請參閱 vLLM 引擎公開的指標

負載平衡器隨後就能搭配以使用率為準的負載平衡使用這項資料,更有效率地平衡工作負載。舉例來說,您可以使用這項功能監控工作負載用量較高的區域,然後允許負載平衡器將流量重新導向至資源較充足的區域。以 vLLM 範例來說,gpu_cache_usage_perc 這項指標可用於追蹤使用率。

需求條件

Pod 的規定如下。

指標的規定如下。

  • 指標必須可透過 HTTP 端點存取。
  • 指標格式必須符合 Prometheus 標準
  • 負載平衡器對指標名稱設有限制。例如,名稱長度不得超過 64 個字元。如需完整的限制清單,請參閱 BackendService API 參考資料中,有關 backends[].customMetrics[].name 欄位的詳細資料。

    如果服務的指標不符合這些限制,您可以使用「exportName」欄位重新命名。

  • 系統僅支援介於 0 和 1 之間的計量指標,其中 1 代表 100% 的使用率。

  • 系統會忽略指標標籤,因此無法用來區分指標。請確保工作負載不會透過多個標籤公開相同的指標。

  • 每個叢集最多可公開 10 個指標。其他服務則有各自的限制。例如,請參閱負載平衡器的限制和規定。請注意,叢集可使用多個負載平衡器。

公開負載平衡指標

  1. 選擇要公開的指標。您可以選擇伺服器公開的任何指標,但必須符合上一節列出的需求。

  2. 新增下列自訂資源,並替換專屬於指標和 Pod 的詳細資料。

    apiVersion: autoscaling.gke.io/v1beta1
    kind: AutoscalingMetric
    metadata:
      name: NAME
      namespace:NAMESPACE
    spec:
      selector:
        matchLabels:
          name: APP_LABEL_NAME
      endpoints:
      - port: METRIC_PORT
        path: METRIC_PATH
        metrics:
        - name: METRIC
          exportName: METRIC_NEW_NAME
    

    請根據工作負載替換下列項目:

    • NAME:AutoscalingMetric 物件的名稱。
    • NAMESPACE:Pod 所在的命名空間。
    • APP_LABEL_NAME:用於 Pod 的標籤。
    • METRIC_PORT:通訊埠號碼。
    • METRIC_PATH:指標的路徑。確認服務或應用程式使用的路徑,這個路徑通常是 /metrics
    • METRIC:您要公開的指標名稱。
    • 選用:METRIC_NEW_NAME:您可以使用這個欄位重新命名指標。如果指標名稱不符合負載平衡器設定的名稱限制,請使用這個欄位將指標重新命名為有效名稱。

      如需完整的限制清單,請參閱 BackendService API 參考資料中,有關 backends[].customMetrics[].name 欄位的詳細資料。

  3. 使用下列指令套用資源:

    kubectl apply -f FILE_NAME.yaml
    

    FILE_NAME 換成 YAML 檔案的名稱。

    新增自訂資源後,指標會推送至自動調度 API。系統每隔幾秒就會讀取指標,並傳送至負載平衡器。

如要公開第二個指標,請按照相同步驟建立另一個自訂資源。

現在您已將指標公開給負載平衡器,可以設定負載平衡器使用這些指標。詳情請參閱設定負載平衡器以使用自訂指標

如要進一步瞭解如何使用負載平衡器,請參閱為 GKE 服務設定以使用率為準的負載平衡

排解負載平衡器公開的指標問題

如要確認指標是否已正確公開給負載平衡器,請執行下列操作:

  • 確認 GKE 指標代理程式中的記錄。如果嘗試公開指標時發生錯誤,記錄可能已指出有錯誤。如要進一步瞭解如何尋找錯誤,請參閱「排解系統指標問題」。
  • 您可以在模擬測試模式中使用負載平衡器,查看收到的所有指標。如要進一步瞭解如何使用 dryRun 旗標測試指標,請參閱設定負載平衡器以使用自訂指標

後續步驟